我是ASP.net的webdev的新手。在Web應用程序中安全「記住我」
我的問題是如何確保安全的「記住我」功能。 目前,我正在將一個對象序列化爲一個cookie,以便將來對用戶進行身份驗證。
但現在我的想法是,如果有人複製我的cookie,他將能夠登錄與黑客入侵的人的帳戶。記住不同會話之間的人的登錄有更安全的版本嗎?
最好的問候
我是ASP.net的webdev的新手。在Web應用程序中安全「記住我」
我的問題是如何確保安全的「記住我」功能。 目前,我正在將一個對象序列化爲一個cookie,以便將來對用戶進行身份驗證。
但現在我的想法是,如果有人複製我的cookie,他將能夠登錄與黑客入侵的人的帳戶。記住不同會話之間的人的登錄有更安全的版本嗎?
最好的問候
您可以在cookie中存儲一些額外信息,如客戶端IP地址。
「記住我」cookie通常包含一個長期會話密鑰。通過存儲關於最初創建cookie的計算機環境的額外信息,您可以更容易地使用被盜的cookie,並在接受cookie之前檢查此信息。這被稱爲「設備指紋識別」。它可以非常精確,但它不是很容易做到,而且不是100%安全。
該ip號碼可以是設備指紋的一部分,但移動設備上的ip號碼發生變化的頻率很高,所以會相當大地降低cookie的值。您可以檢查http標題字段,如「用戶代理」,「接受」,「接受語言」等。這些字段在兩個不同的瀏覽器上通常會有所不同。您可以使用javascript並檢查操作系統版本,Java版本等。
在服務器上存儲設備指紋以及會話密鑰將使記憶-me-cookie變得更加強大。但是,它仍然不是很安全。竊取cookie的攻擊者可能也可以收集所有這些信息。
PS:另外請記住,如果用戶知道cookie丟失,即他的電腦被盜,應該可以取消激活remember-me-cookie。
查看http://stackoverflow.com/questions/3206622/is-putting-data-in-cookies-secure,想法是將一些已知值(旋轉值)存儲在數據庫中,然後與一個已知值cookie – sll 2012-03-23 20:37:37