2010-11-08 132 views
2

我已經爲客戶開發了一個PHP應用程序。客戶現在正按照每個用戶將訪問系統租借給另一家公司。確保每個用戶從一臺計算機訪問網絡應用程序

有沒有辦法阻止二級公司使用一次登錄並將它交給20人同時使用?我知道可以獲取正在登錄的客戶機的IP地址,但這顯然不是非常可靠的方法。答案可能在於餅乾和追蹤數據庫中的東西的組合,但我的大腦思考如何在這裏實施策略時有點卡住。

回答

6

當用戶登錄並將其存儲在數據庫中時,創建唯一的會話ID。向會話驗證代碼添加一些內容(在所有頁面訪問中運行),檢查用戶的會話ID是否與數據庫中的會話ID相同,如果不是,則將其註銷。然後,您的網絡應用程序一次只能由一個用戶訪問。

說實話,你不能提出這個問題與你的客戶?

+2

不要忘記發出警告(可能與鎖定等),否則人們會認爲你的應用程序是越野車:) – 2010-11-08 07:48:42

+0

@battal - 當然。 「不要驚訝用戶」必須成爲應用程序開發的前10名規則之一,接下來是「在發生時解釋令人驚訝的事情」。 – 2010-11-08 07:58:40

2

無法判斷登錄是否由20人共享。您可以通過阻止同時使用會話cookie來限制訪問。

最重要的是,使用已發佈的條款和條件文檔保護自己。違反 - 撤銷任何常設協議/合同。如果你能提供他們違反它的證據(日誌),就起訴他們。

2

確保您將一個用戶綁定到一個會話。這樣,如果有人在另一個會話中使用相同的登錄名,則可以生成警告屏幕。然後您可以讓用戶選擇關閉其他會話。

通過這種方式,您可以確保兩個用戶不在同一時間使用該系統。這有點像您在計算機上安裝的軟件程序:多個用戶可以使用它,但一次只能使用一個。這可能很好。

如果你不想這樣做,你應該嘗試將登錄更牢固地綁定給用戶:確保他使用個人電子郵件地址登錄,並且他通過電子郵件獲得通知(如果適用) 。也讓用戶設置個人配置。通過這種方式,您可以創建附加值,供用戶擁有自己的帳戶。

0

如果您有登錄身份驗證,並且您在會話中編寫了任何用戶標識,請確保只有一個創建了該標識的會話(如果該會話已存在)拋出錯誤消息。

您遇到的唯一問題是用戶沒有正確註銷,而不是在瀏覽器上按x按鈕,直到會話未過期才能登錄。

相關問題