Laravel投稿サイト構築.90 -IPアドレスによるアクセス制限-
前回、お題機能の実装を完了。
音声機能に入る前に、IPアドレスでのアクセス制御を組み込む。
Botによる書き込みが見られるようなので。
参考サイト
ミドルウェア作成
-----
php artisan make:middleware BlockIpAddressMiddleware
-----
↓に作成される。
app\Http\Middleware
ミドルウェア修正
-----
// ブロックするIPアドレス一覧
public $blacklistIps = [
'111.111.111',
'111.111.222',
'111.111.333',
];
// handle関数に追記
if( in_array($request->getClientIp(), $this->blacklistIps)){
abort(403, "You are restricted to access the site.");
}
Kernelファイルの修正
web.phpで個別に設定しても良いのだが、グローバルにミドルウェアを追加してweb.php内の全てのルートに適用されるようにする。
-----
app\Http\Kernel.php
-----
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\BlockIpAddressMiddleware::class,
],
まとめ
今回は以上。
動作確認のためのBot書き込みを削除してしまい、ブロックしたいIPが分からなくなってしまったが、動作はしているのでこれで完成とする。
続く