Asp.net

ASP.NET 中的會話固定

  • March 8, 2010

我想知道如何防止 ASP.NET 中的會話固定攻擊(請參閱<http://en.wikipedia.org/wiki/Session_fixation>)

我的方法通常是在有人登錄時生成並發出一個新的會話 ID。但是這種級別的控制在 ASP.NET 領域是否可行?

一直在做更多的探勘。在任何 Web 應用程序中防止會話固定攻擊的最佳方法是在使用者登錄時發出新的會話標識符。

在 ASP.NET 中,Session.Abandon() 不足以完成此任務。Microsoft 在<http://support.microsoft.com/kb/899918>中聲明:“”當您放棄會話時,會話 ID cookie 不會從使用者的瀏覽器中刪除。因此,一旦會話被放棄,對同一應用程序的任何新請求都將使用相同的會話 ID,但將有一個新的會話狀態實例。""

已在https://connect.microsoft.com/feedback/viewfeedback.aspx?FeedbackID=143361&wa=wsignin1.0&siteid=210#details請求對此進行錯誤修復

有一種解決方法可以確保在<http://support.microsoft.com/kb/899918>上生成詳細的新會話 ID,這涉及呼叫 Session.Abandon,然後清除會話 ID cookie。

如果 ASP.NET 不依賴開發人員來做這件事會更好。

引用自:https://stackoverflow.com/questions/2402312