wilfreedi/laravel-site-protection is a Laravel package for site protection.
It currently has 0 GitHub stars and 21 downloads on Packagist (latest version 0.1.9).
Install it with composer require wilfreedi/laravel-site-protection.
Discover more Laravel packages by wilfreedi
or browse all Laravel packages to compare alternatives.
Last updated
Базовая защита сайта на laravel
Возможности
При достижении лимитов или идентификации бота, происходит редирект на страницу проверки с капчей, после успешной прохождении капчи, ip адрес заносится в белый список на 1 час
composer require wilfreedi/laravel-site-protection
Добавить middleware в app/Http/Kernel.php или на конкретный маршрут
protected $middlewareGroups = [
'web' => [
...
\Wilfreedi\SiteProtection\Middleware\SiteProtectionMiddleware::class
],
...
];
js.check = truejs.key, он будет использоваться для шифрования передаваемых данных с JS на сервер<meta name="protection-key" content="{{ config('siteprotection.js.key') }}"><script defer="defer" type="application/javascript" src="{{ asset('site-protection/js/script.js') }}"></script>(JS скрипт нужно опубликовать у себя, через команду публикации файла настроек)php artisan vendor:publish --provider="Wilfreedi\SiteProtection\SiteProtectionServiceProvider"
| Ключ | Тип | Значение | Что делает |
|---------------------------------|----------|----------------------|----------------------------------------------------------------------------------------------------------------------|
| enabled | bool | true/false | включение защиты сайта |
| theme_color | string | white/black | цвет темы на странице проверки капчи |
| description | string | <p>Мы заме..</p> | текст, выводится на странице капчи |
| js.check | bool | true/false | проверка, что js включен |
| js.key | string | 1234567890abcdef | ключ для шифрования передаваемых данных через js на сервер, AES-128 (длина 16 байт) |
| captcha.provider | string | recaptcha/yandex | сервис капчи |
| bots.enabled_all | bool | true/false | включение отправки на капчу всех, у кого в useragent есть вхождение - bot |
| bots.blocked | array | ['Bytespider'...] | название ботов для блокировки |
| bots.allowed | array | ['Yandexbot'...] | название ботов, которых пропускам(в случа если включен bots.enabled_all, но нужно пропустить ботов, например яндекс) |
| rate_limiting.max_requests | int | 5 | максимальное кол-во запросов |
| rate_limiting.time | int | 1 | за какое время (секунды) |
| 404_protection.max_404_errors | int | 5 | максимальное кол-во ответов 404 |
| 404_protection.time | int | 15 | за какое время (секунды) |
| exclude_paths | array | ['panel'...] | список страниц, которые нужно исключить из защиты |
Сохранение текущего состояния пользователя(кол-во заходов, черный/белый список) находится в кэше
Рекомендуется установить кеширование в redis
CACHE_DRIVER=redis
Если вы обнаружите ошибку или у вас есть предложения по улучшению библиотеки, пожалуйста напишите нам