防止滥用密码修改和密码找回功能

首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考。

1、 前提

执行安全的验证机制,不仅仅要同时满足几个关键安全目标,许多的时候也需要牺牲其他目标。比如易用性、成本、还有功能。

2、 防止滥用密码修改的基本要求

一些基本要求,写下来,以后也可以参考。 1. 加一个简单图片验证码,基本确保是人在操作,而不是机器; 2. 只能从已经通过验证的会话中访问该功能; 3. 不要以任何方式直接提供用户名,也不要使用隐藏表单字段或者cookie提供用户名; 4. 为了防止攻击者通过会话劫持漏洞、跨站点脚本,或者是忘记关闭的页面获得未授权访问,应该要求用户重新输入现有密码; 5. 为了防止输入错误,新密码要输入两次,顺便校验两次密码是否一致; 6. 如果是重要的系统,多次使用失败的使用密码修改功能,很有可能被攻击;

3、 防止滥用“密码找回”的基本要求

密码找回可能是现在最容易出现漏洞的地方,一些基本要求,写下来,以后也可以参考。 加一个简单图片验证码,基本确保是人在操作,而不是机器; 当用户遗忘密码的时候,需要重要的系统,最好是通过非常规的方式完成密码找回,比如给呼叫中心打电话;通过发送传统邮件提供最新的验证信息;或者自动冻结一段时间; 短信、邮件等方式都有可能造成漏洞,但是这个好像是现代互联网经济的基石,如果手机掉了,那就自求多福吧…. 不要使用任何的密码“暗示”,攻击者可以利用明显的暗示发动攻击; 不要以任何方式直接提供用户名,也不要使用隐藏表单字段或者cookie提供用户名; 找回密码的问题最好有足够的随机性,确保攻击者无法轻易猜测出来,但是… 很多的问题,不是黑和白,而是平衡,是灰色… 最终,用户通过重重考验,完成了密码找回,,一般是给用户发送一封重新激活URL的电子邮件;即使到了这一步,也不要透露用户以前的密码等信息;如果是生成一个新密码通过短信发给用户,也要确保这给新密码足够随机,避免让攻击者猜测到;

年轻是胜利的一半。

防止滥用密码修改和密码找回功能

相关文章:

你感兴趣的文章:

标签云: