請給我建議,如果我的想法是正確的。我搜索了信息,但沒有找到確切的答案。
用戶輸入用戶名和密碼與所輸入的用戶名/密碼是相同的,如MySQL的。
創建$ _SESSION [ '的loggedIn'] = 1;這意味着在服務器上的某個地方創建文件的隨機名稱,如r21bj2a3 ....並在用戶瀏覽器中創建cookie的值如r21bj2a3 ....
在下一頁我檢查是否($ _SESSION ['loggedin' ] == 1)。用戶瀏覽器連接到服務器,發送到服務器信息,如:我有Cookie的價值r21bj2a3 ....,請給我的內容?會議?服務器發送信息,對於特定的Cookie會話的loggedIn爲1
按我的理解,如果惡意用戶獲取cookie值r21bj2a3 ....,發送到服務器,並得到了同樣的答案是普通用戶?
根據$ _SESSION [ '的loggedIn']我不能識別特定的用戶?爲了在成功登錄後識別特定用戶,我可以創建唯一的令牌,在mysql中記錄並通過會話?並在通過會話的密碼保護的頁面上,我得到令牌值並檢查(選擇)如果這樣的值存在於mysql中。這樣好嗎?可能會發布一些好的方法鏈接?
關於標記。我使用會話傳遞令牌值。這意味着如果惡意用戶獲取cookie值,發送到服務器並獲得答案,包含令牌值(這樣惡意用戶獲得正常用戶的權限)?
請問,你能給一些鏈接更多的信息?現在我看到:訪問者打開密碼保護頁面。我檢查是否isset($ _ SESSION ['userid']。如果isset,然後有會話值(id)。檢查是否在mysql表會話這樣的值(ID)存在,並檢查是否有人已經認證的值(ID)。如果已經通過身份驗證不允許進行第二次身份驗證,那麼目前爲止都可以,但是我怎麼知道哪個是真實用戶?哪個惡意訪問者?兩者都會給出相同的會話值......例如,這兩個訪問者都會打開新頁面並給出會話值 – user2188210 2013-03-24 08:24:45
正如我所說,保存IP,USER_AGENT以及會話ID,請參閱[$ _SERVER](http://php.net/manual/en/reserved.variables.server.php) – 2013-03-24 08:26:01
啊,是的,謝謝。明白這不是100%?惡意用戶可以獲得相同的IP等,真正的用戶在會話期間可能會改變IP等。據我所知,需要儘可能使用標識符(幾乎)在會話期間永遠不會改變? – user2188210 2013-03-24 08:34:16