這不是一個關於某些javascript詳細信息的具體問題,但我正在尋找驗證,以確定我創建的模型中沒有明顯的漏洞。我決定推出自己的認證程序(除了使用bcrypt在後端散列),其工作是這樣的:使用ajax的JavaScript應用程序的身份驗證模型
- 用戶(瀏覽器或PhoneGap的創建本機應用程序)報> JSON對象使用jQuery的AJAX發佈後端使用bcrypt處理密碼並保存密碼用戶配置文件數據
- 後端根據客戶端IP地址生成並保存它返回的令牌(隨機哈希,如/ dev/urandom)
- jQuery插件存儲令牌到當地的cookie
- 當發出一些請求(發佈,評論,但不是太頻繁)時,它會從cookie並將其添加到json中,並使用ajax將其再次發佈
- 後端檢查該令牌是否存在並且尚未過期(有效期爲7天),檢查該IP地址是否相同,並且如果ok驗證請求json數據並處理該請求
- 當令牌已過期的登錄畫面中示出和憑證張貼AJAX並且如在步驟中創建一個新的令牌2.
一切順利通過SSL進行AJAX請求和無密碼存儲任何地方。如果超出閾值,還會有一種機制檢查蠻力標記垃圾郵件是否會暫時阻止源IP。這不是一個高安全性的應用程序,但要尊重用戶數據並確保其「足夠」安全。
我希望這個問題具有資格,即使它不是特定的,並且作爲其他人的參考,如果它會引發一些討論。我無法找到有關此特定方法的任何最佳練習教程。
更新:認證機制根據收到的反饋進行更新,因爲它似乎對於非關鍵Web應用程序來說是'足夠安全'的。
生成一個隨機令牌,比如'/ dev/urandom'不使用md5,它被破壞並且不是一次性使用令牌的最佳工具。 – rook 2012-07-18 19:57:44
感謝您的提示,我會研究一種生成令牌的替代方法。你能告訴我如何創建一個隨機的阿爾法 - 數字字符串,因爲我沒有使用它來散列密碼等?熵是否比替代品或其他東西更糟? – 2012-07-19 16:58:37