2010-09-27 72 views
3

有一個網站註冊用戶區,他們都有自己的用戶/通行證。如何防止Web應用程序/站點中的多重身份驗證?

問題是,有些人嘗試與其他人共享認證信息以幫助他們完成工作。

沒有可能性限制ip地址,因爲有一個動態ip提供給每個人。

什麼是最好的解決方案?將會話存儲在數據庫中?如何恢復,如果他們沒有正確註銷?

感謝

回答

1

我通常讓他們ping-pong:一個自定義session_save_handler,它將會話存儲在數據庫中,併爲用戶標識(session_id char, session_data blob, session_user int or char)提供額外字段。一次成功的登錄嘗試會破壞/刪除所有其他具有該特定用戶標識的會話,甚至可以記錄該語句實際刪除行的次數,同時在某個位置用計數器阻止人們明顯過度地「刪除」會話。切換計算機/位置/瀏覽器的人員仍然可以在登錄後立即完成工作,共享身份驗證的用戶將繼續記錄彼此,並增加計數器直到您認爲合適的任意限制,在這種情況下,您可以禁用/鎖定帳戶。

1

如果有些人分享他們的ilogin /密碼,然後有什麼可以做的。

您可以檢測到有人從兩個不同的位置連接,然後關閉兩個會話,但這並不能解決完整的問題。

0

我同意LoïcFévrier在分享登錄時幾乎沒有什麼可以做的。

如果您真的想限制用戶從多個位置訪問,當您檢測到同一用戶的兩個會話時,您可以通過電子郵件發送某種代碼/密碼,只有該帳戶的真正所有者可以繼續。

0

沒有特別有效的方法。也就是說,一種技術也可以是使用數據庫來存儲用於在帳戶上登錄的最後一個IP,每隔X時間對數據庫進行ping操作,並且如果客戶端IP不匹配用於登錄的最後一個IP,則結束其會話..

您還可以跟蹤用於訪問帳戶的IP,並限制每個用戶說三個。如果他們想要另一個(可能會合法發生),或者如果他們超過了這個數量 - 您必須聯繫/批准。這是一種被動的方法,但將確保您在可疑賬號的共享通知..

+0

不要忘記非常動態的IP:根據使用的網絡和代理,IP ** **可以在來自同一瀏覽器的後續請求(通常用於緩存代理)之間進行切換。此外,還有一些網絡出於隱私原因每個用戶每隔幾小時就會切換IP。 – Wrikken 2010-09-27 17:22:50

+0

確實非常真實! – SW4 2010-09-28 08:09:09

0

商務解決方案,它不允許共享登錄到任何人

製作指南。跟蹤所有登錄操作,如果您看到併發訪問,請阻止用戶。

a)被封鎖的用戶會打電話給你,哭他的登錄不起作用:給第二次也是最後一次機會。如果沒有采取 - >告訴老闆。如果你是老闆 - >火。

b)被封鎖的用戶不會給你打電話。我想知道他現在可以如何工作。 - >告訴老闆。如果你是老闆 - >火。

編程解決方案

在登錄屏幕,在該用戶的時刻記錄在數據庫中設置一個標誌(IP地址?)。在註銷時,重置標誌。如果用戶已登錄,請不要登錄。如果用戶沒有正確註銷,標誌仍將被設置。所以定義標誌的超時時間。大約5分鐘就可以。任何人都無法分享登錄信息,因爲當您每次訪問頁面時都需要重新登錄。

相關問題