簡體   English   中英

ASP.NET MVC 3表單身份驗證安全風險

[英]ASP.NET MVC 3 Forms Authentication security risk

我正在使用ASP.Net MVC3和IIS 7.0。 在我的網站上,我已經通過https(requireSSL =“ true”)實現了表單身份驗證。 我為.ASPXAUTH cookie設置了一些到期日期(例如5天)。 一切正常,但是從一個瀏覽器成功登錄后,我可以將cookie .ASPXAUTH復制(無問題)到另一瀏覽器或另一台計算機,然后在沒有登錄名和密碼的情況下進入我的網站。

如何才能僅從瀏覽器或鍵入了登錄密碼的計算機訪問該站點,而無法從另一台復制了.ASPXAUTH cookie的瀏覽器訪問該計算機?

在此先感謝,Olexiy

您不能通過表單身份驗證來做到這一點。 圍繞表單身份驗證的整個概念是,它依賴於客戶端上的cookie來跟蹤經過身份驗證的用戶。 您不必擔心,因為所有主要網站都以這種方式工作-如果您擁有有效的Cookie,則客戶端瀏覽器不再重要。 您甚至不需要使用瀏覽器。 您可以編寫一個控制台應用程序,將HTTP請求發送到您的站點,並隨該請求發送cookie,這樣用戶仍將通過身份驗證。

您無需擔心任何風險。 通過啟用SSL,您已經完成了必要的操作,這意味着該cookie永遠不會通過未加密的通道發送。

可以在身份驗證Cookie中合並用戶代理的哈希值和客戶端的IP地址(有關如何執行此操作的某些信息,請參閱身份驗證Cookie中的ASP.Net存儲用戶數據 )。

當心移動瀏覽器和代理-漫游網絡上的用戶可以非常頻繁地更改IP地址,並且代理將為多個用戶提供一個IP。 也將兩者混為一談,就像我一樣,用戶可能會從家庭wi-fi遷移到移動網絡,然后再通過代理遷移到公司wi-fi,您將經常有人注銷。 。 合並用戶代理哈希也意味着安裝操作系統或瀏覽器更新的客戶端也可以將其注銷。

為什么不選擇兩個cookie呢?一個是持久性的,可以識別用戶身份,另一個是僅用於會話的,並且可以跟蹤用戶是否已登錄此訪問記錄? 然后,您執行類似Amazon的操作-要求登錄才能涉及金錢或更改/查看個人數據。 當他們登錄時,您也可以刷新auth cookie。

就是說-實際上,復制auth cookie的風險實際上很小-特別是如果您將超時設置為幾天的話。 如果有人遇到蠕蟲/黑客/小偷可以訪問其身份驗證Cookie的情況,那么他們已經遇到了更大的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM