EGO-LOG

40代2児の父。主にプログラム学習と開発、仮想通貨、メタバース、たまに関係ないことを綴る。

Laravel投稿サイト構築.90 -IPアドレスによるアクセス制限-

前回、お題機能の実装を完了。

 

音声機能に入る前に、IPアドレスでのアクセス制御を組み込む。

Botによる書き込みが見られるようなので。

 

参考サイト

leben.mobi

 

ミドルウェア作成

-----

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が分からなくなってしまったが、動作はしているのでこれで完成とする。

 

続く