2011-11-29 78 views
1

我讀了一些關於會話劫持的文章。黑客嗅探cookie並從那裏獲取會話ID。但我認爲會話ID作爲加密值存儲在cookie中。是不是? 是否可以輕鬆解密?關於ASP.NET中的會話劫持和保護

其他敏感數據存儲在會話cookie中......請說明。無論我們存儲在會話變量中,是否存儲在會話cookie中的服務器端代碼中......是對的?

請指導我關於會話cookie和什麼是保護會話劫持的最佳方法。謝謝

回答

1

這個想法是,他們得到會話cookie並按原樣使用它,將其發送到服務器,服務器將cookie連接到受害者會話。實際上,會話cookie上沒有數據,只是會話ID的加密號碼。

現在有一種情況是,存儲在cookie上的敏感數據是currenct用戶的角色。爲避免可能的解密和對web.config的更改<roleManager cacheRolesInCookie="false"

另外關於身份驗證cookie和角色管理器總是使用requireSSL =「true」,所以它不可能竊取身份驗證的cookie,但是您必須使用安全這個網頁使工作。

有些人可以偷走關鍵會議。如果程序員在會話ID上依賴顯示給用戶的關鍵數據,則可以完成此操作。例如,如果您將電話號碼和名稱存儲在會話變量中並向用戶顯示,則有人可以竊取整個網頁並閱讀它(如果不是ssl)。如果您已將會議ID連接到後臺和隱藏管理頁面的訪問權限,那麼如果有人竊取會話cookie並打開頁面,則他可以訪問管理員後臺頁面。

因此,它決定不存儲會話數據上的關鍵信息,並始終使用ssl頁面來管理和獲取發送cookie關鍵數據。

現在,如果黑客竊取了會話cookie,並且您剛剛存儲了用戶在以前的頁面中看到的內容,那麼像亞馬遜這樣的產品的歷史記錄就沒有什麼大不了,因爲仍然無法將此歷史記錄與用戶關聯起來,任何人都會嗅到用戶看到的網址。

當然,它也取決於您不要在任何未加密的cookie上存儲關鍵數據!

因此,您將數據拆分爲關鍵部分,而不是關鍵部分,並始終將SSL用於關鍵頁面和Cookie,並且絕不相信來自不安全頁面的數據。您可以閱讀: Can some hacker steal the cookie from a user and login with that name on a web site? 希望這可以幫助你。

1

ASP.NET cookie存儲Session IDAuthorization Ticket;然而,問題不在於是否可以解密cookie,而是要能夠創建一個具有相同值的服務器,並誘使服務器相信您的原始cookie的副本是真實的。

HTTP協議是stateless,因此客戶端和服務器不維護彼此的信息。會話Cookie(使用會話ID和授權標籤)是他們如何跟蹤彼此。 Web服務器知道哪個會話ID附加到哪個授權憑單,並且如果您可以提供這些值的有效對,Web服務器將高興地接受它。Web服務器使用對稱加密算法和自動生成的密鑰(默認設置)加密cookie。如果需要,可以通過修改machine.config文件中的相應部分來調整這些設置。