Оцінка надійності паролів у Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 27 серпня, 2025
Використання пакету Laravel Zxcvbn для оцінки надійності паролів може суттєво підвищити безпеку ваших проєктів. Чи готові ви дізнатися, як правильно налаштувати цю потужну функцію у своїх застосунках? Читайте далі, щоб дізнатися більше про просту інтеграцію та налаштування мінімуму допустимих балів для паролів!

Пакет Laravel Zxcvbn — це правило валідації, яке оцінює надійність пароля, використовуючи PHP-версію JS-пакету dropbox/zxcvbn від Dropbox. Він також враховує введені користувачем дані для визначення оцінки вгадування пароля:

// У ваших правилах валідації
use Illuminate\Validation\Rules\Password;
use Ziming\LaravelZxcvbn\Rules\ZxcvbnRule;

$request->validate([
    'name' => ['required'],
    'email' => ['required', 'email'],
    'password' => [
        'required',
        'confirmed',
        'min:8',
        new ZxcvbnRule([
            request('email'),
            request('name'),
        ]),
    ],
]);

// Приклади використання zxcvbn-php
$weak = $zxcvbn->passwordStrength('password', $userData); // 0 - надзвичайно легкий для вгадування
$strong = $zxcvbn->passwordStrength('correct horse battery staple'); // 4 - дуже важкий для вгадування

Ви можете задати конфігураційне значення ZXCVBN_MIN_SCORE, щоб визначити, коли валідація має провалитися, згідно зі шкалою, що надається пакетом zxcvbn-php. За замовчуванням воно дорівнює 3, але ви можете налаштувати його відповідно до своїх потреб:

💻 Почати роботу з цим пакетом можна на GitHub: ziming/laravel-zxcvbn.

Важливо пам'ятати, що Laravel має чудові правила для паролів, включаючи можливість перевірки, чи не був пароль у попередніх витоках даних. Додаткові деталі можна знайти у документації щодо валідації:

use Illuminate\Validation\Rules\Password;

Password::min(8)
    ->letters()
    ->mixedCase()
    ->numbers()
    ->symbols()
    ->uncompromised();