paip.提升用户体验与安全性---注册流程总结
paip.提升用户体验与安全性---注册流程总结
限制用户输入国内TOP100的口令
限制用户输入国外TOP500的口令黑名单
这个黑名单来源于就像twitter限制用户的口令
限制输入常用字典黑名单口令
可以把常用口令字典的名单做为一个黑名单,限制用户输入此类口令
口令长度7---20位
一般而言在一个DESKTOP PC上,破解需要200天的口令是比较安全的,因为破解可以用多台PC并行,时间可大大缩短,所以经得起200天破解的口令才算安全
这里的密码算法是最常用字的MD5。。。
检测口令强度网站http://howsecureismypassword.net/
全部小写字母 12位, 276days
全部大写字母 12位 ,276days
全部数字17 , 289days
小写字母+数字 11位,一年
大写字母+数字 11位,一年
大小写字母混合10位,一年
大小写字母+字母混合10位,6年
小写字母+大写字母+特殊符号+数字 9位,275DAYS
小写字母+大写字母+特殊符号+数字 8位,3DAYS
参考
破解你的口令. coolshell.cn
paip.提升安全性----我们需要多长的密码
总结:当然,如果使用安全的加密算法,不使用简单的SHA,MD5一类的算法,则密码强度就大大增加了,但口令长度仍然应该在7位及以上。
口令为纯小写字母,长度应为12位及以上
口令为纯数字式,长度应为17位及以上
增加口令强度检测UI器(弱,中,强三档)
增加UX之NakedPassword
提示用户但不强行禁止用户使用简单口令
为了提升用户体验…除非你的站点涉及到金钱一类的安全性很有必要的情况,此种情况下,可以强制用户输入安全性强的口令…否则,只是提示用户口令很差劲,但是不要强制用户使用高强度口令。。
SALT方式,自定算法保存口令,
可以使用组合方式,这样可以防止对方拿到加密后的口令利用RAINTABLE进行破解..
Salt=nowtime
s=username+password+salt+key;
pwdx=hash(s);
hash(stirng s)
{
for(3times){
sha(s)
md5(s)}
}
参考:paip.提升安全性-------用户口令密码的检测与生成
初次注册时不要使用验证码
当怀疑是注册机程序时,才开始使用验证码。为了提升用户体验,方便盲人,不要仅使用图片验证码,可以使用手机验证码,或者邮箱验证码..
探测防守,防止注册机器人
防止机器程序进行注册..限制注册的次数。。
比如同一IP在一小时最多可注册两次..此注册间隔5分钟以上,当日最多注册5个等措施..尽可能不用验证码,以提升用户体验…..如果超出些限制,才开始使用验证码…
系统全局防守
当然,这个需要我们平时没有受到攻击时的数据做为支持。比如你的系统,平均每天有5000次的注册的事件,那么你可以认为,大幅超过这个数后,而且时间相对集中,就说明有黑客攻击。
这个时候你怎么办?一般最常见使用的方法是让所有的用户再次尝试的时间成本增加。
参考
你会做Web上的用户登录功能吗? COOLSHELL