وقتی ما برای مثال از متد ()uncompromised استفاده میکنیم به این شکل:
$request->validate([
'password' => [
'required',
'string',
Password::min(8) // حداقل ۸ کاراکتر
->uncompromised(), // بررسی امنیت پسورد
],
]);
از نسخه لاروال 8 به بعد این تابع با استفاده از اینترنت میاد و پسوردهای اصطلاحا لیک شده یا لو رفته رو چک میکنه و اگر داخل اون بود این پیام رو برمیگردونه:
The given password has appeared in a data leak. Please choose a different password.
که یعنی این پسورد شما لو رفته مثلا ما اگر از پسور 12345678 استفاده کنیم و هیچ شرط دیگه ای نداشته باشیم این متد برای ما ارور برمیگردونه و میگه این پسورد لو رفته.
این تابع بطور دقیق میاد و به سایت Have I Been Pwned که یک دیتابیس از هش رمزهای لو رفته داره متصل میشه و از این API چک میکنه که آیا این پسورد از قبل چندبار لو رفته و چک میکنه، که این باعث افزایش امنیت پسورد کاربران ما میشه ما میتونیم از این تابع به این شکل هم استفاده کنیم:
Password::min(8)->uncompromised(3)
که یعنی چک کنه اگر حداکثر این پسورد سه بار لو رفته اون رد کنه درحالت پیشرفرض این عدد 1 هست یعنی اگر یکبار هم این پسورد لیک شده باشه اون رو رد میکنه.