开发 Java Web 应用的防弹访问控制系统
1. 密码安全相关措施
1.1 密码问题与答案
在重置密码时,系统会提示用户输入密码问题及答案,这些问题最好具有个人性质。例如,“你最喜欢的餐厅叫什么名字?”就比“你高中的名字是什么?”更适合作为密码重置问题,因为后者可能是更容易被他人知晓的信息。同时,密码问题和答案在存储时应进行加密或哈希处理,所有适用于存储密码的密钥管理和哈希最佳实践也应应用于密码答案。
1.2 密码历史记录
密码历史记录是一项与密码过期具有相同目标的安全功能。当用户更改密码时,不能使用之前使用过的密码。例如,Bob 要更改他访问银行应用程序的密码,该银行应用程序强制要求保留四个密码的历史记录。Bob 过去的四个密码分别是 DjAck@l*321、InDiAnAj0neS^321、st@Rw@rs#1985、bLAdeRuNNeR@121,那么当他被提示更改密码时,将不允许使用这些已用过的密码。实施密码历史记录的原因与密码过期相同,因为随着时间推移和使用,密码可能会被泄露,使用相同密码可能导致访问控制被破坏。
1.3 “记住我”密码功能
Web 应用程序的“记住我”密码功能可能存在安全漏洞,攻击者可能利用此功能入侵用户账户。该功能用于识别从个人计算机访问 Web 应用程序的回头用户,如果用户勾选了“记住我”,应用程序将不再反复要求用户输入凭据。然而,一些不安全的做法引发了针对此功能的攻击:
- 浏览器缓存问题 :密码不应缓存在浏览器中,特别是在公共计算机上,攻击者可以轻松访问缓存并获取存储在其中的用户密码。应将 HTML 中的密码字段设置为 A
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



