Этот пакет предназначен для защиты вашего приложения Laravel от различных типов атак, таких как XSS, SQLi, RFI, LFI, User Agent и многих других. Он также будет блокировать повторные атаки и отправлять уведомления по электронной почте и/или через Slack при обнаружении атаки. Кроме того, он будет регистрировать неудачные входы в систему и блокировать IP-адрес после нескольких попыток.
Примечание. Некоторые классы промежуточного программного обеспечения (например, Xss) пусты, поскольку абстрактный класс Middleware
, который они расширяют, выполняет всю работу динамически. Короче говоря, все работает ;)
Выполните следующую команду:
композитору требуется учетная запись/laravel-firewall
Публикация конфигурации, языка и миграций
поставщик php artisan:publish --tag=firewall
Создание таблиц БД
миграция PHP Artisan
Вы можете изменить настройки брандмауэра вашего приложения из файла config/firewall.php
Промежуточное программное обеспечение уже определено, поэтому следует просто добавить его в маршруты. Промежуточное программное обеспечение firewall.all
применяет все промежуточное программное обеспечение, доступное в массиве all_middleware
файла конфигурации.
Route::group(['middleware' => 'firewall.all'], function () { Route::get('/', 'HomeController@index'); });
Вы можете применить каждое промежуточное программное обеспечение для каждого маршрута. Например, вы можете разрешить доступ к администратору только IP-адресам из белого списка:
Route::group(['middleware' => 'firewall.whitelist'], function () { Route::get('/admin', 'AdminController@index'); });
Или вы можете получать уведомления, когда кто-то НЕ входит в whitelist
с правами администратора, добавив его в конфигурацию inspections
:
Route::group(['middleware' => 'firewall.url'], function () { Route::get('/admin', 'AdminController@index'); });
Доступное промежуточное программное обеспечение, применимое к маршрутам:
брандмауэр.все брандмауэр.агент брандмауэр.бот firewall.geo брандмауэр.ip firewall.lfi брандмауэр.php брандмауэр.реферер firewall.rfi брандмауэр.сессия брандмауэр.sqli брандмауэр.ругаться брандмауэр.url брандмауэр.белый список брандмауэр.xss
Вы также можете определить routes
для каждого промежуточного программного обеспечения в config/firewall.php
и применить это промежуточное программное обеспечение или firewall.all
вверху всех маршрутов.
Брандмауэр отправит уведомление, как только будет обнаружена атака. Для отправки уведомлений электронные письма, введенные в конфигурацию notifications.email.to
, должны быть действительными пользователями Laravel. Дополнительную информацию можно найти в документации по уведомлениям Laravel.
Дополнительную информацию о том, что изменилось за последнее время, см. в разделе «Релизы».
Запросы на извлечение более чем приветствуются. Вы должны следовать стандартам кодирования PSR.
Пожалуйста, ознакомьтесь с нашей политикой безопасности, чтобы узнать, как сообщать об уязвимостях безопасности.
Денис Дуличи
Все участники
Лицензия MIT (MIT). Пожалуйста, смотрите ЛИЦЕНЗИЮ для получения дополнительной информации.