Este pacote pretende proteger seu aplicativo Laravel de diversos tipos de ataques como XSS, SQLi, RFI, LFI, User Agent e muito mais. Ele também bloqueará ataques repetidos e enviará notificações por e-mail e/ou Slack quando um ataque for detectado. Além disso, ele registrará logins com falha e bloqueará o IP após várias tentativas.
Nota: Algumas classes de middleware (ou seja, Xss) estão vazias, pois a classe abstrata Middleware
que elas estendem faz todo o trabalho, dinamicamente. Resumindo, todos funcionam ;)
Execute o seguinte comando:
compositor requer akaunting/laravel-firewall
Publicar configuração, idioma e migrações
fornecedor de artesão php:publish --tag=firewall
Criar tabelas de banco de dados
php artesão migrar
Você pode alterar as configurações de firewall do seu aplicativo no arquivo config/firewall.php
Os middlewares já estão definidos, portanto basta adicioná-los às rotas. O middleware firewall.all
aplica todos os middlewares disponíveis na matriz all_middleware
do arquivo de configuração.
Route::group(['middleware' => 'firewall.all'], function () { Rota::get('/', 'HomeController@index'); });
Você pode aplicar cada middleware por rota. Por exemplo, você pode permitir que apenas IPs na lista de permissões acessem o administrador:
Rota::group(['middleware' => 'firewall.whitelist'], function () { Route::get('/admin', 'AdminController@index'); });
Ou você pode ser notificado quando alguém NÃO estiver na whitelist
de administrador, adicionando-o à configuração inspections
:
Rota::group(['middleware' => 'firewall.url'], function () { Route::get('/admin', 'AdminController@index'); });
Middlewares disponíveis aplicáveis às rotas:
firewall.tudo firewall.agente firewall.bot firewall.geo firewall.ip firewall.lfi firewall.php firewall.referenciador firewall.rfi firewall.sessão firewall.sqli firewall.swear firewall.url firewall.lista branca firewall.xss
Você também pode definir routes
para cada middleware em config/firewall.php
e aplicar esse middleware ou firewall.all
no topo de todas as rotas.
O Firewall enviará uma notificação assim que um ataque for detectado. Os e-mails inseridos na configuração notifications.email.to
devem ser usuários válidos do Laravel para enviar notificações. Confira a documentação de Notificações do Laravel para mais informações.
Consulte Lançamentos para obter mais informações sobre o que mudou recentemente.
Solicitações pull são mais que bem-vindas. Você deve seguir os padrões de codificação PSR.
Revise nossa política de segurança sobre como relatar vulnerabilidades de segurança.
Denis Duliçi
Todos os colaboradores
A licença MIT (MIT). Consulte LICENÇA para obter mais informações.