このパッケージは、XSS、SQLi、RFI、LFI、ユーザー エージェントなどのさまざまな種類の攻撃から Laravel アプリを保護することを目的としています。また、繰り返しの攻撃をブロックし、攻撃が検出された場合には電子メールやスラックで通知を送信します。さらに、失敗したログインをログに記録し、何回か試行した後に IP をブロックします。
注: 一部のミドルウェア クラス (つまり、Xss) は、拡張されたMiddleware
抽象クラスがすべてのジョブを動的に実行するため、空です。要するに、それらはすべて機能します ;)
次のコマンドを実行します。
コンポーザーには akaunting/laravel-firewall が必要です
構成、言語、移行を公開する
php 職人ベンダー:publish --tag=firewall
データベーステーブルを作成する
php職人の移行
config/firewall.php
ファイルからアプリのファイアウォール設定を変更できます。
ミドルウェアはすでに定義されているため、ルートに追加するだけです。 firewall.all
ミドルウェアは、構成ファイルのall_middleware
配列で使用可能なすべてのミドルウェアを適用します。
Route::group(['ミドルウェア' => 'firewall.all'], function () { Route::get('/', 'HomeController@index'); });
各ミドルウェアはルートごとに適用できます。たとえば、ホワイトリストに登録された IP のみに admin へのアクセスを許可できます。
Route::group(['ミドルウェア' => 'ファイアウォール.ホワイトリスト'], function () { Route::get('/admin', 'AdminController@index'); });
または、 inspections
設定に追加することで、 whitelist
に含まれていない人が管理者にアクセスしたときに通知を受け取ることもできます。
Route::group(['ミドルウェア' => 'ファイアウォール.url'], function () { Route::get('/admin', 'AdminController@index'); });
ルートに適用できる利用可能なミドルウェア:
ファイアウォール.すべて ファイアウォール.エージェント ファイアウォール.ボット ファイアウォール.ジオ ファイアウォール.ip ファイアウォール.lfi ファイアウォール.php ファイアウォール.リファラー ファイアウォール.rfi ファイアウォール.セッション ファイアウォール.sqli ファイアウォール.誓う ファイアウォール.url ファイアウォール.ホワイトリスト ファイアウォール.xss
config/firewall.php
で各ミドルウェアのroutes
を定義し、そのミドルウェアまたはfirewall.all
すべてのルートの先頭に適用することもできます。
ファイアウォールは、攻撃が検出されるとすぐに通知を送信します。通知を送信するには、 notifications.email.to
config に入力されたメールが有効な Laravel ユーザーである必要があります。詳細については、Laravel の通知ドキュメントを参照してください。
最近の変更点の詳細については、「リリース」を参照してください。
プルリクエストは大歓迎です。 PSR コーディング標準に従う必要があります。
セキュリティの脆弱性を報告する方法については、セキュリティ ポリシーをご覧ください。
デニス・ドゥリシ
すべての貢献者
MIT ライセンス (MIT)。詳細については、「ライセンス」を参照してください。