我正在構建一個遊戲,玩家可以創建帳戶,您知道,標準方案。但是,我想單純依靠Javascript,無論是在服務器端(Node.js)還是在客戶端。我應該如何將用戶名和密碼發送到服務器?
我與服務器通信的主要方式通常是Socket.io,我猜是以明文形式發送密碼不是一個好主意 - 但我不知道爲什麼!我的意思是,有人可以嗅探交通什麼的?這是如何發生的?最重要的是,這個問題的解決方案是什麼?
我知道我需要將密碼保存爲服務器端的散列值。
我正在構建一個遊戲,玩家可以創建帳戶,您知道,標準方案。但是,我想單純依靠Javascript,無論是在服務器端(Node.js)還是在客戶端。我應該如何將用戶名和密碼發送到服務器?
我與服務器通信的主要方式通常是Socket.io,我猜是以明文形式發送密碼不是一個好主意 - 但我不知道爲什麼!我的意思是,有人可以嗅探交通什麼的?這是如何發生的?最重要的是,這個問題的解決方案是什麼?
我知道我需要將密碼保存爲服務器端的散列值。
簡短的回答是use HTTPS由creating your own SSL certificate。
即使GMail在2008年之前也沒有use HTTPS all the time的選項。我總是驚訝我們仍然不在乎安全性。說起來,做鹽你的哈希密碼。醃製很簡單...選擇一個詞,任何單詞。附加到密碼並散列。 (即SHA1(密碼mysalt))少數人有some trouble with that recently。添加一點鹽可以至少防止彩虹的襲擊。
任何人都可以嗅探流量。數據包通過任何公共網絡發送......當路由器獲得它時,它不是爲了他們的網絡,而是通過它......但是你可以在那裏使用嗅探器來捕獲所有流量。通常,無線網絡中嗅探更普遍,因爲無線傳輸可以比有線網絡更容易被攔截......但這意味着嗅探器必須位於無線網絡附近。一種流行的技術是會話劫持 - 嗅探者在HTTP請求中查找會話ID(查看cookie),然後他們所需做的就是將其cookie值設置爲劫持 – Ian