我已經開始研究一個新的Web項目,這次我想我會考慮如何處理用戶身份驗證(以前只使用MD5哈希密碼)。我覺得我在網上搜索的每一個角落一個簡單的,非矯枉過正的解決方案,現在我不知道下面是可以實現:AJAX/PHP挑戰 - 響應登錄
客戶端輸入用戶名和密碼,並按下「提交」
在提交AJAX請求到服務器請求一個隨機令牌/現時/祕密/口令
服務器返回的隨機數到一個散列的密碼和隨機數由客戶端發出
客戶端發送的用戶名和散列(密碼+隨機數),可在認證是由服務器
我的問題如下:
是否有可能爲AJAX問爲nonce服務器並讓服務器等待散列被傳回? (async:false也許?隨意提供摘錄/示例)我看到的唯一另一種選擇是將nonce存儲在隱藏字段中,這看起來不太有利。
這是否會提供任何額外的安全級別?
如果沒有,還有什麼其他選擇?我是否應該像過去那樣以明文形式發送密碼?
注: 我知道很多人會想說,HTTPS/SSL是實現一個安全站點的唯一途徑,我聽你的,但是由於這個項目是不應該有超過少數用戶都是由我手動創建的,並且不會有任何安全信息,例如金融交易或其他敏感數據交換。我只想在登錄期間保護密碼/數據的方式爲合理。 MITM和所有其他威脅在這種情況下對我來說不存在問題,因爲 a)所有黑客中的大多數不會對我的小型私人用途項目 和 感興趣b)計算出的任何數據丟失或安全漏洞的成本都不足以保證購買SSL證書
任何意見或建議都會受到讚賞(即使是那些想要責備我是個吝嗇的新手的人);)
查看我的最新回答 – les
SSL證書價格低至5美元,可在15分鐘內安裝。 – Patanjali
截至2015年11月16日,letsencrypt.org將提供免費的SSL證書。 – Patanjali