2011-07-21 28 views
2

在我的MVC 3網站上使用自動登錄。自動登錄和FormsAuthenticationTicket的安全問題

如何最好地處理這個問題:在自己的電腦

用戶跡象(並得到一個30天的cookie)在朋友的電腦

相同的用戶跡象(並得到一個30天cookie)

現在可以在兩臺計算機上自動登錄。用戶意識到這一點並更改了他的密碼,但他的朋友仍然能夠從他的電腦上自動登錄,直到cookie過期。

如何最好地處理此問題?

我當然可以在密碼更改時在用戶的日期設置,並在cookie中檢查日期。

或者我錯過了什麼?

+0

「autologin」是什麼意思? – RPM1984

+0

@ RPM1984:繞過使用登錄cookie設置的身份驗證過程記住我複選框 – naveen

+0

是不是股票標準的asp.net形式驗證,具有持久性cookie?只是從來沒有聽說它命名爲「自動登錄」,我猜。 – RPM1984

回答

1

我知道你在說什麼,但我想你暗示的是「記住我」功能和「密碼更改」功能之間的關聯,實際上,這個功能不存在。認證時得到的認證令牌通常不會與密碼的值相關聯(即使用成員資格提供者時),畢竟,您在邏輯上保持跨會話進行身份驗證,在這方面,它工作得很好。

說實話,這聽起來更像是一個用戶行爲問題而不是技術問題。在您的使用案例中,有人有意識地要求瀏覽器允許他們長期保持認證並在他們無法控制的機器上這樣做。當然,我假設你有一個「記住我」複選框,如果你沒有,那麼你的答案就在那裏。

您可能想要看的另一件事是OWASP在前10名 - Broken authentication and session management的第3部分中提到的內容。這個鏈接將把它放在一個.NET環境中,但總之,它談論了很多關於減少你正在描述的事情的機會,比如渴望會話到期,禁用滑動會話,並明顯地給最終用戶控制在會話到期時過期令牌並在任何時候註銷。

1

不要在你的登錄表單上記住我複選框。此複選框的值將決定您是否要創建持久性cookie。如果您不創建持久性cookie,則只要會話結束,它就會過期。在這種情況下,用戶可以在他的朋友計算機上登錄時取消選中記住我複選框。如果他不是他自己呼喚麻煩。

+0

好點。但是,如果基於舊密碼的故障單在更改密碼後仍可以登錄,則仍然存在問題。 – stulster

+1

您可以使用用戶名和密碼組合作爲關鍵字來創建身份驗證票據,因爲在設置Cookie值之前票據已加密,因此無法公開敏感信息 –