鑑於MSDN明文密碼問題的曝光,各個網站都在爲本身忽視網絡安全在進行反思,也有部分無恥網站開始利用這個名單在增長本身的註冊用戶,真是機遇與風險並存。對了咱們來講,用戶也會根據這個事件提升對各個軟件系統的安全要求,之後作軟件系統安全性也是一個須要考慮的範疇,值得你們借鑑。 原文地址:http://coolshell.cn/articles/5353.html 正文: Web上的用戶登陸功能應該是最基本的功能了,但是在我看過一些站點的用戶登陸功能後,我以爲頗有必要寫一篇文章教你們怎麼來作用戶登陸功能。下面的文章告訴你們這個功能可能並無你所想像的那麼簡單,這是一個關係到用戶安全的功能,但願你們能從下面的文章中能知道什麼樣的方法纔是一個好的用戶登陸功能。如下內容,轉載時請保持原文一致,並請註明做者和出處。 用戶名和口令首先,咱們先來講說用戶名和口令的事。這並非本站第一次談論這個事了。如何管理本身的口令讓你知道怎麼管理本身的口令,破解你的口令讓你知道在現代這樣速度的計算速度下,用窮舉法破解你的口令可能會是一件很輕鬆的事。在這裏我想告訴從開發者的角度上來作設計這個用戶名和口令的事。下面一幾件規則:
因此,咱們每一個頁面都須要對用戶的身份進行認證。固然,咱們不可能讓用戶在每一個頁面上輸入用戶名和口令,這會讓用戶以爲咱們的網站至關的SB。爲了實現這一功能,用得最多的技術就是瀏覽器的cookie,咱們會把用戶登陸的信息存放在客戶端的cookie裏,這樣,咱們每一個頁面都從這個cookie裏得到用戶是否登陸的信息,從而達到記錄狀態,驗證用戶的目的。可是,你真的會用cookie嗎?下面是使用cookie的一些原則。
用戶名:明文存放。 登陸序列:一個被MD5散列過的隨機數,僅當強制用戶輸入口令時更新(如:用戶修改了口令)。 登陸token:一個被MD5散列過的隨機數,僅一個登陸session內有效,新的登陸session會更新它。 2)上述三個東西會存在服務器上,服務器的驗證用戶須要驗證客戶端cookie裏的這三個事。 3)這樣的設計會有什麼樣的效果,會有下面的效果, a)登陸token是單實例登陸。意思就是一個用戶只能有一個登陸實例。 b)登陸序列是用來作盜用行爲檢測的。若是用戶的cookie被盜後,盜用者使用這個cookie訪問網站時,咱們的系統是覺得是合法用戶,而後更新「登陸token」,而真正的用戶回來訪問時,系統發現只有「用戶名」和「登陸序列」相同,可是「登陸token」 不對,這樣的話,系統就知道,這個用戶可能出現了被盜用的狀況,因而,系統能夠清除並更改登陸序列 和登陸token,這樣就能夠令全部的cookie失效,並要求用戶輸入口令。並給警告用戶系統安全。 4)固然,上述這樣的設計仍是會有一些問題,好比:同一用戶的不一樣設備登陸,甚至在同一個設備上使用不一樣的瀏覽器保登陸。一個設備會讓另外一個設備的登陸token和登陸序列失效,從而讓其它設備和瀏覽器須要從新登陸,並會形成cookie被盜用的假象。因此,你在服務器服還須要考慮- IP 地址, a) 若是以口令方式登陸,咱們無需更新服務器的「登陸序列」和 「登陸token」(但須要更新cookie)。由於咱們認爲口令只有真正的用戶知道。 b) 若是 IP相同 ,那麼,咱們無需更新服務器的「登陸序列」和 「登陸token」(但須要更新cookie)。由於咱們認爲是同一用戶有同一IP(固然,同一個局域網裏也有同一IP,但咱們認爲這個局域網是用戶能夠控制的。網吧內並不推薦使用這一功能)。 c) 若是 (IP不一樣 && 沒有用口令登陸),那麼,「登陸token」 就會在多個IP間發生變化(登陸token在兩個或多個ip間被來來回回的變換),當在必定時間內達到必定次數後,系統纔會真正以爲被盜用的可能性很高,此時系統在後臺清除「登陸序列」和「登陸token「,讓Cookie失效,強制用戶輸入口令(或是要求用戶更改口令),以保證多臺設備上的cookie一致。
2)修改電子郵件。(電子郵件一般用來找回用戶密碼,最好通發郵件或是發手機短信的方式修改,或者乾脆就不讓改一一用電子郵件作賬號名) 3)用戶的隱私信息。 4)用戶消費功能。
找回口令的功能找回口令的功能必定要提供。可是不少朋友並不知道怎麼來設計這個功能。咱們有不少找回口令的設計,下面我逐個點評一下。
|