有一個網站註冊用戶區,他們都有自己的用戶/通行證。如何防止Web應用程序/站點中的多重身份驗證?
問題是,有些人嘗試與其他人共享認證信息以幫助他們完成工作。
沒有可能性限制ip地址,因爲有一個動態ip提供給每個人。
什麼是最好的解決方案?將會話存儲在數據庫中?如何恢復,如果他們沒有正確註銷?
感謝
有一個網站註冊用戶區,他們都有自己的用戶/通行證。如何防止Web應用程序/站點中的多重身份驗證?
問題是,有些人嘗試與其他人共享認證信息以幫助他們完成工作。
沒有可能性限制ip地址,因爲有一個動態ip提供給每個人。
什麼是最好的解決方案?將會話存儲在數據庫中?如何恢復,如果他們沒有正確註銷?
感謝
我通常讓他們ping-pong:一個自定義session_save_handler,它將會話存儲在數據庫中,併爲用戶標識(session_id char, session_data blob, session_user int or char
)提供額外字段。一次成功的登錄嘗試會破壞/刪除所有其他具有該特定用戶標識的會話,甚至可以記錄該語句實際刪除行的次數,同時在某個位置用計數器阻止人們明顯過度地「刪除」會話。切換計算機/位置/瀏覽器的人員仍然可以在登錄後立即完成工作,共享身份驗證的用戶將繼續記錄彼此,並增加計數器直到您認爲合適的任意限制,在這種情況下,您可以禁用/鎖定帳戶。
如果有些人分享他們的ilogin /密碼,然後有什麼可以做的。
您可以檢測到有人從兩個不同的位置連接,然後關閉兩個會話,但這並不能解決完整的問題。
我同意LoïcFévrier在分享登錄時幾乎沒有什麼可以做的。
如果您真的想限制用戶從多個位置訪問,當您檢測到同一用戶的兩個會話時,您可以通過電子郵件發送某種代碼/密碼,只有該帳戶的真正所有者可以繼續。
沒有特別有效的方法。也就是說,一種技術也可以是使用數據庫來存儲用於在帳戶上登錄的最後一個IP,每隔X時間對數據庫進行ping操作,並且如果客戶端IP不匹配用於登錄的最後一個IP,則結束其會話..
您還可以跟蹤用於訪問帳戶的IP,並限制每個用戶說三個。如果他們想要另一個(可能會合法發生),或者如果他們超過了這個數量 - 您必須聯繫/批准。這是一種被動的方法,但將確保您在可疑賬號的共享通知..
商務解決方案,它不允許共享登錄到任何人
製作指南。跟蹤所有登錄操作,如果您看到併發訪問,請阻止用戶。
a)被封鎖的用戶會打電話給你,哭他的登錄不起作用:給第二次也是最後一次機會。如果沒有采取 - >告訴老闆。如果你是老闆 - >火。
b)被封鎖的用戶不會給你打電話。我想知道他現在可以如何工作。 - >告訴老闆。如果你是老闆 - >火。
編程解決方案
在登錄屏幕,在該用戶的時刻記錄在數據庫中設置一個標誌(IP地址?)。在註銷時,重置標誌。如果用戶已登錄,請不要登錄。如果用戶沒有正確註銷,標誌仍將被設置。所以定義標誌的超時時間。大約5分鐘就可以。任何人都無法分享登錄信息,因爲當您每次訪問頁面時都需要重新登錄。
不要忘記非常動態的IP:根據使用的網絡和代理,IP ** **可以在來自同一瀏覽器的後續請求(通常用於緩存代理)之間進行切換。此外,還有一些網絡出於隱私原因每個用戶每隔幾小時就會切換IP。 – Wrikken 2010-09-27 17:22:50
確實非常真實! – SW4 2010-09-28 08:09:09