用戶登錄安全

Web上的用功能應該是最基本的功能了,可是在我看一些站點的用功能後,我得很有必要寫一篇文章教大家怎麼來做用功能。下面的文章告大家個功能可能並沒有你所想像的那麼簡單是一個關係到用安全的功能,希望大家能從下面的文章中能知道什麼的方法纔是一個好的用功能。以下內容,轉載時請保持原文一致,並註明作者和出

用戶名和口令

首先,我先來說說名和口令的事。並不是本站第一次談論這個事了。如何管理自己的口令你知道怎麼管理自己的口令,破解你的口令你知道在這樣速度的算速度下,用窮舉法破解你的口令可能會是一件很鬆的事。在裏我想告從開者的角度上來做設計這個用和口令的事。下面一幾件規則

  • 限制用戶輸入一些非常容易被破解的口令。如什麼qwert123456, password,就像twitter限制用的口令做一個口令的黑名。另外,你可以限制用口令的度,是否有大小寫,是否有數字,你可以用你的程序做一下校。當然可能會感到很不爽,所以,在很多網站都提供了UX知道他的口令度是什麼的(比如個有趣的UX),這樣可以有一個選擇,目的就是告——要想安全,先把口令得好一點。

  • 千萬不要明文保存用的口令。正如如何管理自己的口令的一,很多候,用都會用相同的ID相同的口令來登很多網站。所以,如果你的網站明文保存的,那麼,如果你的數據被你的不良工流出去那是災性的。所以,用的口令一定要加密保存,最好是用不可逆的加密,如MD5或是SHA1的有hash算法的不可逆的加密算法。CSDN曾明文保存的口令。(另,於國內公司的品行以及有關部的管理方式,我不敢保國內網站以加密的方式保存你的口令。我得,做一個有良知的人,我們應該密保存用的口令)

  • 是否讓瀏覽器保存口令。我N多的方法可以不讓瀏覽器保存用名和口令。但是可能很不爽。因在真世界裏得不住那麼多的口令。很多用可能會使用一些密管理工具來保存密瀏覽器只是其中一種。是否讓瀏覽器保存個需要你做決定,重點是看一下你的系的安全級別是否要求比高,如果是的不要讓瀏覽器保存密,並在網站明的位置告——保存口令最安全的地方只有你的大

  • 口令在網上的傳輸。因HTTP是明文協議,所以,用名和口令在網上也是明文送的,個很不安全。你可以看看篇文章你就明白了。要做到加密傳輸就必需使用HTTPS協議。但是,在中國是有很多網站的Web方式在使用ActiveX控件,可能成IE6大量存在的原因。我通常理解爲這ActiveX控件是了反鍵盤記錄程序的。,我依然ActiveX控件不應該存在,因在國外的衆多安全很重要的站點上都看不到ActiveX的控件的身影。

用戶登錄狀態

首先,我想告大家的是,因HTTP是無狀協議,也就是協議是無法記錄戶訪問的,其每次求都是獨立的無關的,一筆是一筆。而我的網站都是設計成多個面的,所在面跳轉過程中我需要知道用的狀,尤其是用的狀這樣面跳後我才知道是否可以限來操作一些功能或是看一些數據。

所以,我每個面都需要的身份認證。當然,我不可能在每個面上入用名和口令,戶覺得我的網站相當的SB實現這一功能,用得最多的技就是瀏覽器的cookie,我會把用的信息存放在客端的cookie裏,這樣,我每個面都從cookie得用是否登的信息,從而達到記錄驗證的目的。但是,你真的會用cookie?下面是使用cookie的一些原

  • 千萬不要在cookie中存放用的密。加密的密都不行。因爲這個密可以被人取並嘗試線窮舉。所以,你一定不能把用的密保存在cookie中。我看到太多的站點麼幹了。

  • 正確設計住密個功能直就是一個安全患,我得並不是所有的程序都知道怎麼設計這個事。一般的設計——個功能,系會生成一個cookiecookie包括用名和一個固定的散列個固定的散列一直使用。這樣,你就可以在所有的設備和客上都可以登,而且可以有多個用個並不是很安全。下面是一些更安全的方法供你參考:
       
    ——更新 2011/08/26,原文中有些小錯誤,並且的不清楚,重新調整了一下——

1)在cookie中,保存三個西——序列token

:明文存放。
序列:一個被MD5散列的隨機數,制用戶輸入口令更新(如:用修改了口令)
token:一個被MD5散列的隨機數,一個登session內有效,新的登session會更新它

2)上述三個西會存在服器上,服器的驗證需要驗證cookie裏的三個事。

3這樣設計會有什麼的效果,會有下面的效果,

atoken單實例登。意思就是一個用只能有一個登錄實例。

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被來來回回的變換),當在一定時間內達到一定次數後,系纔會真正得被盜用的可能性很高,此在後臺清除序列tokenCookie失效,制用戶輸入口令(或是要求用更改口令),以保多臺設備上的cookie一致。

  • 不要cookie訪問所有的操作。否就是XSS個功能參看新浪微博的XSS下面的些功能一定要用戶輸入口令:

1)修改口令。

2)修改件。(件通常用來找回用,最好通發郵件或是手機短信的方式修改,或者乾脆就不改一一用件做號名)

3)用私信息。

4)用功能。

  • Cookie時間如果是永不期,會有很不的用,但是也會很快就忘了登。如果置上期期限,比如2周,一個月,那麼可能會好一點,但是2周和一個月後,用依然會忘了密。尤其是用在一些公共電腦上,如果保存了永久cookie,等於泄露了號。所以,cookie時間們還需要衡。

找回口令的功能

找回口令的功能一定要提供。但是很多朋友並不知道怎麼來設計這個功能。我有很多找回口令的設計,下面我逐個點一下。

  • 千萬不要使用安全。事實證明,環節人,而且用並不能很好的置安全答。什麼,我的生日啊,我母的生日,等等。因今天的互網和以前不一了,因SNS,今天的互比以前更真了,我可以上facebook,開心,人人網,LinkedIn到你的很多的真的信息。通過這些信息我可以使用安全答來重你的口令。裏需要一下 FacebookFacebook的安全答很大,要你通照片人,呵呵。

  • 不要重置用的密。因爲這有可能的密遭到意攻。當然,你要戶讓其確,用擊郵件中的一個接,你再重置。我並不推薦這樣的方法,因一般都會用筆下來個很難記的口令,然後登,因統時使用了住密的功能,所以致用不會去修改密,從而要麼到被寫下來的密被人盜取,要麼又忘了密

  • 好一點的做法——過郵件自行重置。當用找回口令功能的候,系生成一個MD5唯一的隨機字串(可通UID+IP+timestamp+隨機數),放在數據中,然後置上限(比如1內),戶發一個件,接中包含那個MD5的字串的接,用那個接來自己重新置新的口令

  • 更好一點的做法——多重認證。比如:通手機+件的方式戶輸驗證碼。手機+件可能不把握,因手機要能會了,而我的手機可以訪問我的箱。所以,使用U盾,SecureID(一個會化的6位數token),或是通人工的方式核身份。當然,主要看你的系的安全級別了。

口令探測防守

  • 使用驗證碼驗證碼是後臺隨機生的一個短驗證碼驗證碼一般是一個算機很難識別片。這樣就可以防止以程序的方式來嘗試的口令。事實證明,是最簡單也最有效的方式。當然,戶輸入那些肉眼都看不清驗證碼的用不好,所以,可以折中一下。比如Google,當他發現一個IP地址出大量的搜索後,其會要求你驗證碼。當他發現同一個IP註冊了3個以上的gmail箱後,他需要短信方式或是電話方式的驗證碼

  • 口令失次數調置口令失的上限,如果失敗過多,了,需要用以找回口令的方式來重新激活號。但是,個功能可能會被意人使用。最好的方法是,增加其嘗試時間成本(以前的篇文章說過一個增加時間成本的解密算法)。如,兩次口令嘗試隔是5。三次以上錯誤號被臨時鎖30秒,5次以上號被110次以上錯誤帳號被4……但是意用用腳本來攻,所以最好再加上驗證碼驗證碼次數多不禁止登而是禁lP

  • 全局防守。上述的防守只針對某一個意者深知一點,所以,他一般會殭屍網嘗試一堆用的口令,所以上述的那種方法可能好。我需要在系全局域上控所有的口令失的次數。當然,個需要我沒有受到攻擊時的數據做支持。比如你的系,平均每天有5000次的口令錯誤的事件,那麼你可以認爲,當口令錯誤大幅超過這個數後,而且時間集中,就明有***攻候你怎麼?一般最常使用的方法是所有的用戶輸錯口令後再次嘗試時間成本增加。

最後,再一下,關於用,使用第三方的OAuth OpenID 也不失一個很不選擇

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章