辅助正念/pwned-validator

此包已被废弃且不再维护。未建议替代包。

一个简单的Laravel验证器,用于通过Have I Been Pwned的Pwned Password服务检查密码。

1.0.0 2023-01-24 18:56 UTC

This package is auto-updated.

Last update: 2023-06-24 15:27:19 UTC


README

Tests

介绍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)。请参阅许可文件以获取更多信息。