akaunting/firewall

此软件包已被弃用且不再维护。作者建议使用akaunting/laravel-firewall软件包。

Laravel的Web应用防火墙(WAF)软件包

2.2.0 2024-03-19 21:51 UTC

README

Downloads Tests StyleCI License

此软件包旨在保护您的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