Google reCaptcha 2 to jedno z popularniejszych i chyba skuteczniejszych sposobów na zatrzymanie robotów.
Nowa wersja już nie wymaga przepisywania numerków z obrazków. Teraz wystarczy kliknąć Checkbox. Jeśli jednak z jakiegoś powodu zostaniemy podejrzanymi Google będzie kazał nam wybrać 2 obrazki z listy.
Integracja z Laravel jest dziecinnie prosta dzięki paczce anhskohbo/no-captcha
co pokażę w kilku prostych krokach
Instalacja
Do pliku
composer.json
dodajemy:{ "require": { "greggilbert/recaptcha": "dev-master" } }
W pliku
/config/app.php
dodajemy ServiceProvider:Greggilbert\Recaptcha\RecaptchaServiceProvider::class,
oraz Facade:
'Recaptcha' => Greggilbert\Recaptcha\Facades\Recaptcha::class,
Publikujemy konfigurację:
php artisan vendor:publish --provider="Greggilbert\Recaptcha\RecaptchaServiceProvider"
- Ustawiamy w pliku
/config/recaptcha.php
nasze klucze do reCaptcha które można uzyskać w Google reCaptcha Admin
Szablon
Aby wyświetlić nasze zabezpieczenie dodajemy w pliku szablonu kawałek kodu:
{!! Recaptcha::render(['lang' => App::getLocale()]) !!}
Controller
Aby sprawdzić czy przeszliśmy weryfikację sprawdzamy validując w ten sposób:
$this->validate($request->all(), [
'g-recaptcha-response' => 'required|recaptcha',
]);
albo dodajemy do naszego customowego pliku Request.
Język
Ostatnią rzeczą którą musimy zrobić to dodanie do języków:
"recaptcha" => 'Weryfikacja Captha niepoprawna',
'custom' => [
'g-recaptcha-response' => [
'required' => 'Musisz potwierdzić Captha',
]
],
Dzięki temu będziemy mogli w jasny sposób zakomunikować ew. błędy.
Podsumowanie
W bardzo prosty sposób możemy zabezpieczyć swoje formularze, rejestracje oraz inne elementy wystawione na działanie botów.
Jeśli macie jakieś pytania lub problemy zapraszam do komentowania lub kontaktu przez Formularz a na pewno pomogę oraz uzupełnię ew. wpis o FAQ lub poprawki