2017-08-05 102 views
1

爲了安全起見,有沒有辦法在服務器和/或客戶端JavaScript中訪問和打印控制檯(或嗅探)變量?訪問NodeJS變量?

您是否認爲安全地存儲變量密碼來加密帳戶敏感數據(然後混淆.js文件)?

+0

歡迎來到Stack Overflow!請[參觀],環顧四周,並通讀[幫助],特別是[*我如何問一個好問題?](/ help /如何問)當然,您可以訪問變量。你到底什麼意思? –

+0

*「您是否認爲可以安全地存儲變量密碼來加密賬戶敏感數據(然後混淆.js文件)?」*僅當公鑰/私鑰對中的公鑰存在時。 (如果需要,不需要模糊處理。) –

+1

我不清楚你在問什麼。在客戶端,你可以做任何你想做的事情。客戶端無法直接訪問服務器變量。密碼?客戶端中的任何內容都是可訪問的。 –

回答

0

訪問此密碼通常情況下,你不想要存儲在客戶端密鑰,因爲這將是由公衆消費。一些服務確實提供客戶端密鑰,這很好,因爲它們是客戶端特定的。

在服務器端,密鑰可以自由使用。但是,他們不應該被硬編碼到您的源代碼中。相反,將它們注入到Node環境中,並在源代碼中像process.env.VARIABLE_NAME那樣使用它們。

0

你的意思是記錄一個變量?你可以在你的代碼中使用 console.log(variable) 。它會顯示在你正在運行的任何服務器的終端中。對於部署的服務器,這將真正取決於你託管在哪裏,但執行console.log將在日誌中記錄,在Heroku例如,你可以做這樣的事情

Heroku的日誌

;否則,您應該無法在運行時從外部訪問變量,原因很明顯。

0

你不應該在js文件中存儲一個變量。而不是將其存儲在js文件中,當您將應用程序作爲命令行參數啓動時,可以輸入密碼短語。這樣,只有已經啓動應用程序的人才會知道密碼的價值。沒有人可以嗅到它或訪問。你可以通過命令行參數作爲

node app.js <passphrase> 

,你可以在你的應用程序的任何地方與

console.log(process.argv)