akaunting / firewall
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.8
- jenssegers/agent: 2.6.*
- laravel/framework: ^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^7.4|^8.0|^9.0
- phpunit/phpunit: ^9.5|^10.0|^11.0
This package is auto-updated.
Last update: 2024-03-19 21:53:34 UTC
README
此软件包旨在保护您的Laravel应用程序免受各种攻击,例如XSS、SQLi、RFI、LFI、用户代理等。它还会阻止重复攻击,并在检测到攻击时通过电子邮件和/或Slack发送通知。此外,它还会记录失败的登录尝试,并在一定次数后阻止IP地址。
注意:一些中间件类(例如Xss)为空,因为它们扩展的Middleware
抽象类会动态地完成所有工作。简而言之,它们都正常工作;)
入门
1. 安装
运行以下命令
composer require akaunting/laravel-firewall
2. 发布
发布配置、语言和迁移
php artisan vendor:publish --tag=firewall
3. 数据库
创建数据库表
php artisan migrate
4. 配置
您可以从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'); });
或者,您可以通过将其添加到inspections
配置来通知当不在whitelist
中的任何人访问管理员界面。
Route::group(['middleware' => 'firewall.url'], function () { Route::get('/admin', 'AdminController@index'); });
适用于路由的可用中间件
firewall.all firewall.agent firewall.bot firewall.geo firewall.ip firewall.lfi firewall.php firewall.referrer firewall.rfi firewall.session firewall.sqli firewall.swear firewall.url firewall.whitelist firewall.xss
您还可以在config/firewall.php
中为每个中间件定义routes
,并在所有路由的顶部应用该中间件或firewall.all
。
通知
防火墙在检测到攻击时会立即发送通知。在notifications.email.to
配置中输入的电子邮件必须为有效的Laravel用户,才能发送通知。有关更多信息,请参阅Laravel的通知文档。
变更日志
有关最近更改的更多信息,请参阅发行版。
贡献
欢迎提交拉取请求。您必须遵循PSR编码标准。
安全
请查看我们的安全策略以了解如何报告安全漏洞。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅LICENSE。