Paket ini bertujuan untuk melindungi aplikasi Laravel Anda dari berbagai jenis serangan seperti XSS, SQLi, RFI, LFI, User Agent, dan banyak lagi. Ini juga akan memblokir serangan berulang dan mengirimkan pemberitahuan melalui email dan/atau slack ketika serangan terdeteksi. Selain itu, ia akan mencatat login yang gagal dan memblokir IP setelah beberapa kali mencoba.
Catatan: Beberapa kelas middleware (yaitu Xss) kosong karena kelas abstrak Middleware
yang diperluas melakukan semua pekerjaan secara dinamis. Singkatnya, semuanya berfungsi;)
Jalankan perintah berikut:
composer memerlukan akunting/laravel-firewall
Publikasikan konfigurasi, bahasa, dan migrasi
vendor tukang php:publish --tag=firewall
Buat tabel db
migrasi tukang php
Anda dapat mengubah pengaturan firewall aplikasi Anda dari file config/firewall.php
Middleware sudah ditentukan jadi sebaiknya tambahkan saja ke rute. Middleware firewall.all
menerapkan semua middleware yang tersedia di array file konfigurasi all_middleware
.
Rute::grup(['middleware' => 'firewall.all'], function () { Rute::dapatkan('/', 'HomeController@index'); });
Anda dapat menerapkan setiap middleware per rute. Misalnya, Anda hanya dapat mengizinkan IP yang masuk daftar putih untuk mengakses admin:
Rute::grup(['middleware' => 'firewall.whitelist'], function () { Rute::dapatkan('/admin', 'AdminController@index'); });
Atau Anda bisa mendapatkan pemberitahuan ketika ada orang yang TIDAK masuk whitelist
mengakses admin, dengan menambahkannya ke konfigurasi inspections
:
Rute::grup(['middleware' => 'firewall.url'], function() { Rute::dapatkan('/admin', 'AdminController@index'); });
Middleware yang tersedia berlaku untuk rute:
firewall.semua firewall.agent firewall.bot firewall.geo firewall.ip firewall.lfi firewall.php firewall.referrer firewall.rfi firewall.sesi firewall.sqli firewall.sumpah firewall.url firewall.daftar putih firewall.xss
Anda juga dapat menentukan routes
untuk setiap middleware di config/firewall.php
dan menerapkan middleware atau firewall.all
tersebut di bagian atas semua rute.
Firewall akan mengirimkan pemberitahuan segera setelah serangan terdeteksi. Email yang dimasukkan dalam konfigurasi notifications.email.to
harus merupakan pengguna Laravel yang valid untuk mengirim notifikasi. Lihat dokumentasi Notifikasi Laravel untuk informasi lebih lanjut.
Silakan lihat Rilis untuk informasi lebih lanjut tentang apa yang berubah baru-baru ini.
Permintaan tarik sangat diterima. Anda harus mengikuti standar pengkodean PSR.
Harap tinjau kebijakan keamanan kami tentang cara melaporkan kerentanan keamanan.
Denis Dulici
Semua Kontributor
Lisensi MIT (MIT). Silakan lihat LISENSI untuk informasi lebih lanjut.