辅助正念 / pwned-validator
一个简单的Laravel验证器,用于通过Have I Been Pwned的Pwned Password服务检查密码。
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.5
- laravel/framework: ^9.0
Requires (Dev)
- laravel/pint: ^1.2
- orchestra/testbench-core: ^7.0
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^4.3 || ^5.0
This package is auto-updated.
Last update: 2023-06-24 15:27:19 UTC
README
介绍Pwned Password验证器 - 确保用户密码安全的一个简单有效的工具。此包将用户提交的密码(在注册或更改密码时)与HIBP Pwned Passwords数据库进行比较,该数据库包含超过50亿个在数据泄露中被公开的真实世界密码。
如果发现密码已被泄露,验证将失败,并将阻止用户在您的应用程序中使用它。这有助于保护您的用户免受潜在的安全漏洞,并确保他们使用强大、唯一的密码。使用Pwned Password验证器,您可以放心,知道您用户的数据是安全的。今天尝试一下,看看它对您的应用程序安全性的影响。
安装
使用Composer安装包
composer require assisted-mindfulness/pwned-validator/pwned-validator
将验证消息添加到您的验证语言文件 lang/en/validation.php
'pwned' => 'The :attribute is not secure enough',
或使用 :min
在消息中指示验证器上设置的找到的最小次数
'pwned' => 'Your password is insufficiently secure as it has been found at least :min times in known password breaches, please choose a new one.',
使用 pwned
验证器
安装后,pwned
验证器将直接在您的验证规则中可用。
return Validator::make($data, [ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:6|pwned|confirmed', ]);
使用规则对象
或者,如果您喜欢,可以使用 AssistedMindfulness\Pwned\PwnedRule
验证规则对象 而不是 pwned
别名。
return Validator::make($data, [ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => ['required', 'string', 'min:6', new \AssistedMindfulness\Pwned\PwnedRule, 'confirmed'], ]);
根据密码被泄露的次数进行限制
您还可以将拒绝的密码限制为那些至少被泄露一定次数的密码。例如,密码已被泄露3,303,003次,然而 P@ssword!
仅被泄露118次。如果我们想阻止 password
但不阻止 P@ssword!
,我们可以指定最小次数为150,如下所示
'password' => 'required|string|min:6|pwned:150|confirmed',
或者使用规则对象
'password' => ['required', 'string', 'min:6', new \AssistedMindfulness\Pwned\PwnedRule(150), 'confirmed'],
许可
此包是https://github.com/valorin/pwned-validator的分支。
MIT许可(MIT)。请参阅许可文件以获取更多信息。