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的通知文档。

变更日志

有关最近更改的更多信息,请参阅发行版

贡献

欢迎提交拉取请求。您必须遵循PSR编码标准。

安全

请查看我们的安全策略以了解如何报告安全漏洞。

致谢

许可协议

MIT许可(MIT)。有关更多信息,请参阅LICENSE