Пакет 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, але ви можете налаштувати його відповідно до своїх потреб:
0 вказує, що пароль дуже легко вгадати (до 10^3 спроб); слова з словника, такі як 'password' або 'mother', отримують оцінку 01 все ще дуже вгадуваний (менше 10^6 спроб); додавання одного символа до словникового слова може дати 12 дещо вгадуваний (менше 10^8 спроб), забезпечує певний захист від невгамовних онлайн-атак3 безпечно невгадуваний (менше 10^10 спроб), надає помірний захист від сценаріїв повільного хешування офлайн4 дуже невгадуваний (спроби більше або дорівнюють 10^10) і забезпечує надійний захист від офлайн-атак з повільним хешуванням💻 Почати роботу з цим пакетом можна на GitHub: ziming/laravel-zxcvbn.
Важливо пам'ятати, що Laravel має чудові правила для паролів, включаючи можливість перевірки, чи не був пароль у попередніх витоках даних. Додаткові деталі можна знайти у документації щодо валідації:
use Illuminate\Validation\Rules\Password;
Password::min(8)
->letters()
->mixedCase()
->numbers()
->symbols()
->uncompromised();
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!
У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту