首頁 > 系統教程 > Linux > 主體

「記住密碼」功能功能的隱患

王林
發布: 2024-02-08 08:33:09
轉載
769 人瀏覽過

「記住密碼」功能功能的隱患

#這樣,你就可以在所有的裝置和客戶上都可以登錄,而且可以有多個用戶同時登入。這個並不是很安全。以下是一些更安全的方法供你參考:

1 在cookie中,儲存三個東西-使用者名稱登入序列登入token

a)使用者名稱:明文存放。
b)登入序列:一個被MD5散列過的隨機數,僅當強制使用者輸入口令時更新(如:使用者修改了口令)。
c)登入token:一個被MD5散列過的隨機數,僅一個登入session內有效,新的登入session會更新它。

2 上述三個東西會存在伺服器上,伺服器的驗證使用者需要驗證客戶端cookie裡的這三個事。
3 這樣的設計會有什麼樣的效果,會有下面的效果,

a)登入token是單一實例登入。意思就是一個使用者只能有一個登入實例。

b)登入序列是用來做盜用行為偵測的。如果用戶的cookie被偷後,盜用者使用這個cookie造訪網站時,我們                 的系統以為是合法用戶,然後更新「登入token」,而真正的使用者回來造訪時,系統發現只有「用戶                                               名#中之後與「登入序列一樣使用時「#token#」與「登入序列」相同,但是「#token」上對,這樣的使用者就可能知道了的                                        條件並給予警告使用者係統安全。

4 當然,上述這樣的設計還是會有一些問題

例如:同一用戶的不同裝置登錄,甚至在同一個裝置上使用不同的瀏覽器保登入。一個裝置會讓另一個裝置的登入token登入序列失效,讓其它裝置和瀏覽器需要重新登入,並會造成cookie被盜用的假象。所以,你在伺服器服還需要考慮- IP 位址,下面牽涉到三個問題。

a) 如果以口令方式登錄,我們無需更新伺服器的「登入序列」和 「登入token」(但需要更新cookie)。因為我們認為口令只有真正的使用者知道。

b) 如果 IP相同 ,那麼,我們不需要更新伺服器的「登入序列」和 「登入token」(但需要更新cookie)。因為我們認為是同一用戶有相同IP(當然,同一個區域網路裡也有相同IP,但我們認為這個區域網路是用戶可以控制的。網咖內不建議使用此功能)。

c) 如果(IP不同&& 沒有用口令登入),那麼,「登入token」 就會在多個IP間發生變化(登入token在兩個或多個ip間被來來回回的變換),當在一定時間內達到一定次數後,系統才會真正覺得被盜用的可能性很高,此時系統在後台清除“登入序列」和「登入token“,讓Cookie失效,強制使用者輸入口令(或是要求使用者更改口令),以確保多台裝置上的cookie一致。

我覺得這是一個不錯的方案,cookies被盜的假象甚至可以「弄巧成拙」地實現——QQ的後來登入用戶擠掉之前的登入用戶這樣的功能。

以上是「記住密碼」功能功能的隱患的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:linuxprobe.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!