专栏名称: Fundebug
Fundebug为JavaScript、微信小程序及Node.js开发团队提供专业的线上代码bug监控和智能分析服务。
目录
相关文章推荐
前端大全  ·  10年了,开发人员仍然不明白 ... ·  昨天  
前端大全  ·  前端行情变了,差别真的挺大。。。 ·  3 天前  
前端早读课  ·  【开源】TinyEngine开启新篇章,服务 ... ·  3 天前  
51好读  ›  专栏  ›  Fundebug

提示“用户名或密码不正确”很糟糕

Fundebug  · 公众号  · 前端  · 2018-01-08 10:21

正文

译者按: 好像真的有点道理!难住了用户,并拦不住黑客!

  • 原文: “username or password incorrect” is bullshit

  • 译者: Fundebug

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

你也许听说过最佳安全策略是:登录的时候不要提示“密码不正确”,而是“用户名或密码不正确”。
在这里我想说这是一个混蛋策略,一点也没用。

来,我给你们看看Strip和Github的登录页:





为什么会有这样的设计呢?因为如果黑客知道用户名,他/她就可以专注于使用各种攻击方法比如(SQL注入、暴力破解、网络诱骗等等)来获取密码。

我接下来告诉你这个策略为啥行不通。





完了,我的用户名被你们看到了,我的账户接下来很危险了!更不用说你可以直接去https://github.com/travisjeffery页面来判断travisjeffery是否是用户名。

所以黑客只需要去注册页面尝试使用用户名注册一下,就知道该用户名有没有被注册。为何在登录的时候还要使用模棱两可的提示语?只要最蠢的黑客遇到“用户名或密码不正确”这样的提示才会被难住。因此,事实上你并没有获得更高的安全等级,但却让你的客户使用变得麻烦很多。

Strip将表单提交放在reCAPTCHA验证之后,来阻止简单的脚本攻击。不过,还是出过好几次问题(1, 2),而且貌似永远不会完美解决。就算reCAPTCHA可以完全防住脚本攻击,黑客还是可以通过注册来测出用户名,然后再发动攻击。

为了防止黑客去推测账户是否存在,最好的办法就是通过填入邮箱地址,并且不会提示是否有该注册邮箱的情况下将登陆链接发送到用户的邮箱。黑客想要破解这种方式的唯一方法就是除非他能够访问用户的邮箱。

我还是要说:提示“用户名或密码不正确”是一个混蛋策略!

Fundebug提供网页JavaScript错误监控,如果有频繁的登录尝试,Fundebug也可以捕获到相关错误信息的喔!

我们欢迎转载,但是要求 注明作者Fundebug







请到「今天看啥」查看全文