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.comAPI。相反,它遵循一个被称为k匿名密码验证

实际上,原始密码使用SHA-1进行散列,并且只发送散列的前几个字节。然后,haveibeenpwned.comAPI将这些字节与所有泄露密码的SHA-1哈希值进行比较,并返回以这些字节开头的哈希值列表。这就是约束在不完全泄露密码的情况下检查密码是否已泄露的方式。

例如,如果密码为测验,则整个SHA-1哈希值为a94a8fe5ccb19ba61c4c0873d391e987982fbbd3但是验证器只发送a94a8haveibeenpwned.comAPI。

另请参阅

在Symfony应用程序中使用此约束时,定义ob娱乐下载not_compromised_password选项中避免发出HTTP请求dev而且测验环境。

可用选项

类型数组|字符串

它定义了这个约束的一个或多个验证组。阅读更多验证组

消息

类型字符串默认的此密码已在数据泄露中泄露,请勿使用。请使用其他密码。

密码泄露时提供的默认消息。

有效载荷

类型混合默认的

此选项可用于将任意特定于领域的数据附加到约束。已配置的有效负载不由Validator组件使用,但其处理完全取决于您。

例如,您可能想使用若干错误级别根据错误的严重程度,在前端以不同的方式呈现失败的约束。

skipOnError

类型布尔默认的

的HTTP请求时haveibeenpwned.comAPI因任何原因失败,抛出异常(没有显示验证错误)。将此选项设置为真正的不抛出异常并认为密码有效。

阈值

类型整数默认的1

这个值定义了密码应该被公开泄露的次数。在将该选项设置为更高的值之前请仔细考虑,因为它可能会降低应用程序的安全性。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
ob娱乐下载Symfony 6.0支持通过SensioLabs