2011-12-05 54 views
1

存儲用戶身份從什麼我瞭解的方式會話劫持的作品我沒有看到表單驗證擁有存儲在ASP用戶認證信息的任何優勢,更安全。 NET會話。表單身份驗證和ASP.NET會話都使用哈希來驗證完整性的cookie,但都無法防止黑客竊取cookie並僞裝成用戶。那麼就安全性而言,有什麼理由使用Forms Authentication來存儲ASP.NET會話中的認證信息?是窗體身份驗證比ASP.NET_session(會話劫持)

回答

1

一些差異:

如果您存儲在會話狀態的認證信息和應用程序池回收,所有用戶將立即註銷。相比之下,表單身份驗證在表單身份驗證cookie中以加密格式保存必要的信息,並且可以在應用程序池回收期結束。

會話ID是一個120位的隨機數。唯一的保護是隨機性。沒有防篡改功能,實際上黑客可以不斷地用您的網站隨機會話ID進行輪詢,直到他發現有效的網站。這種活動沒有入侵檢測機制,因爲不可能將被篡改的會話ID與已過期的會話ID區分開來。

窗體身份驗證票證(餅乾)是完全不同的。它由一串長長的數據組成,然後用128位機器密鑰加密。如果有人篡改它,它根本不會解密。解密失敗是一種可捕獲的錯誤,可以入侵入侵檢測機制。機票的整體基數要高得多,而且難以暴力。

在所有我已經最近使用過的網站,我們實際上同時使用窗體身份驗證機制和ASP.NET_SessionId。我們還有一個內部會話ID(ESB會話標識符),我們將其插入到表單身份驗證票證中。

0

我聽說在會話中使用窗體身份驗證,而不是存儲認證信息的唯一有趣的說法是,我可以把更多的限制對窗體身份驗證cookie的(過期日期等),但不是在會話cookie。因此,用戶喜好或任何會持續在會話中的內容,如果用戶在30分鐘後被迫再次登錄,則不會丟失。是啊,我不知道