您的 Web 登录表单的十个安全提示






2.73/5 (21投票s)
2005年8月10日
3分钟阅读

92130
避免页面被黑客攻击的技巧
引言
这些是关于您在构建网站时登录表单的软件安全提示。
WebLogin的十个安全提示
-
永远不要给潜在的攻击者提示
如果用户ID错误或密码错误,请在两种情况下都给出相同的消息。 在这种情况下,过于用户友好的反馈可能是一个错误。
例如,一个典型的错误是添加这样的注释:“您的用户ID错误”或“给定的密码不属于该用户ID。”
您必须使用更模糊的消息,例如:“用户ID或密码错误。”
-
不要将用户密码以纯文本形式存储在数据库中
无论您采取多少安全措施,都没有完美的安全系统。 使用哈希方法存储密码,例如 SHA256 或其他方法。 尽量使用强大的哈希函数。
您也可以加密密码,但这会引发处理密钥的问题。
-
要求长密码,8 个字符或更多
密码必须包含数字、字母(大写和小写)和其他符号的混合。 构建一个正则表达式验证器来强制执行这些要求。
-
强制您的用户定期更改密码
-
在 3 次或更多次尝试后阻止登录
您很可能受到密码猜测机器人的攻击。 暂时阻止 IP 一段时间,1 小时或更长时间,具体取决于您的安全设置。 在极端情况下,阻止帐户,并通过电子邮件通知所有者。
在 IIS 上,您可以使用 IIS ADSI Provider Interfaces 的 IISIpSecurity 接口。 在 MSDN 上阅读相关内容:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/42f71810-275a-4410-b2b6-e8ad57c8fb8f.asp
-
检查您密码恢复的实践
始终向用户返回一个新密码,并强制他在恢复后更改密码。 不要使用问题来记住密码,人们通常会将密码作为答案。 另外,一些问题很容易猜到。 在这种情况下,身份盗窃更容易。
-
不要使用电子邮件地址进行用户识别
用户电子邮件是一个非常公开的属性,容易获得或猜测。 给用户不同的标识符。 允许用户更改标识符。
-
不要给用户机会通过电话或在线聊天会话通过帮助台恢复密码
与机器相比,人们更容易被社会工程欺骗。
-
避免测试或 CAPTCHA
它们会损害可用性,并给人一种虚假的安全感。 双因素身份验证(Token 或 Key 生成器也同样无用)。
但是,图灵测试对于非关键流程很有用,例如,如果您考虑可用性问题,则可以避免垃圾邮件。 正在开发一些智能图灵测试,因此这一点在不久的将来会发生变化。
-
将您的密码与生物识别技术结合起来
这可以为您提供更强大的安全性。
阅读这些文章
为什么必须避免 CAPTCHA:http://www.w3.org/TR/turingtest/
双因素身份验证:http://www.schneier.com/essay-083.html