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

0
Перекладено ШІ
Оригінал: 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();

Популярні

Logomark Logotype

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом

Logomark Logotype

"SQLSTATE[HY000] [2002] Connection refused" у Laravel в GitHub Actions

Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!

Logomark Logotype

Nuxt 3 + Laravel Sanctum: Просте та надійне рішення для автентифікації вашого SPA та API

У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту