#這樣,你就可以在所有的裝置和客戶上都可以登錄,而且可以有多個用戶同時登入。這個並不是很安全。以下是一些更安全的方法供你參考:
a)使用者名稱:明文存放。
b)登入序列:一個被MD5散列過的隨機數,僅當強制使用者輸入口令時更新(如:使用者修改了口令)。
c)登入token:一個被MD5散列過的隨機數,僅一個登入session內有效,新的登入session會更新它。
a)登入token是單一實例登入。意思就是一個使用者只能有一個登入實例。
b)登入序列是用來做盜用行為偵測的。如果用戶的cookie被偷後,盜用者使用這個cookie造訪網站時,我們 的系統以為是合法用戶,然後更新「登入token」,而真正的使用者回來造訪時,系統發現只有「用戶 名#中之後與「登入序列一樣使用時「#token#」與「登入序列」相同,但是「#token」上對,這樣的使用者就可能知道了的 條件並給予警告使用者係統安全。
例如:同一用戶的不同裝置登錄,甚至在同一個裝置上使用不同的瀏覽器保登入。一個裝置會讓另一個裝置的登入token和登入序列失效,讓其它裝置和瀏覽器需要重新登入,並會造成cookie被盜用的假象。所以,你在伺服器服還需要考慮- IP 位址,下面牽涉到三個問題。
a) 如果以口令方式登錄,我們無需更新伺服器的「登入序列」和 「登入token」(但需要更新cookie)。因為我們認為口令只有真正的使用者知道。
b) 如果 IP相同 ,那麼,我們不需要更新伺服器的「登入序列」和 「登入token」(但需要更新cookie)。因為我們認為是同一用戶有相同IP(當然,同一個區域網路裡也有相同IP,但我們認為這個區域網路是用戶可以控制的。網咖內不建議使用此功能)。
c) 如果(IP不同&& 沒有用口令登入),那麼,「登入token」 就會在多個IP間發生變化(登入token在兩個或多個ip間被來來回回的變換),當在一定時間內達到一定次數後,系統才會真正覺得被盜用的可能性很高,此時系統在後台清除“登入序列」和「登入token“,讓Cookie失效,強制使用者輸入口令(或是要求使用者更改口令),以確保多台裝置上的cookie一致。
我覺得這是一個不錯的方案,cookies被盜的假象甚至可以「弄巧成拙」地實現——QQ的後來登入用戶擠掉之前的登入用戶這樣的功能。
以上是「記住密碼」功能功能的隱患的詳細內容。更多資訊請關注PHP中文網其他相關文章!