NotCompromisedPassword
编辑该页面NotCompromisedPassword
验证给定的密码没有被检查,它不包括在任何公共追踪的数据泄露haveibeenpwned.com。
基本用法
以下约束确保rawPassword
财产的用户
类不存储密码:
- 属性
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9 10
/ / src /实体/ User.php名称空间应用程序\实体;使用ob娱乐下载\组件\验证器\约束作为断言;类用户{#(断言\ NotCompromisedPassword)受保护的美元rawPassword;}
为了使密码验证,这个约束不发送原始密码值haveibeenpwned.com
API。相反,它是一个安全的过程称为k-anonymity密码验证。
在实践中,原始密码是使用sha - 1哈希和只发送第一个字节的散列。然后,haveibeenpwned.com
API比较这些字节与所有泄露的sha - 1哈希密码和返回哈希表的列表,从相同的字节。这就是约束可以检查密码一直没有完全披露。
例如,如果密码测试
,整个sha - 1哈希a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
但验证器只发送a94a8
到haveibeenpwned.com
API。
另请参阅
当使用这个约束在一个Symfony应用程序,定义ob娱乐下载not_compromised_password避免犯的HTTP请求的选项dev
和测试
环境。
可用选项
有效载荷
类型:混合
默认的:零
这个选项可以用来连接任意特定领域的数据约束。配置的有效载荷不使用验证器组件,但是它的处理是完全取决于你。
例如,您可能想要使用几个错误级别以不同的方式来呈现没有约束,在前端取决于错误的严重性。
skipOnError
类型:布尔
默认的:假
当HTTP请求的haveibeenpwned.com
API由于某种原因失败,抛出异常(没有显示验证错误)。设置这个选项真正的
不抛出的异常,考虑有效的密码。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。