2024
September
13
【Laravel】MiddlewareでIP制限をする
Laravelサイトの特定のページに、IPアドレスでの閲覧制限をつけたい。
環境
Laravel Framework 9.52.16
PHP 8.2.7
やったこと
middlewareの新規作成。
$ php artisan make:middleware IpFirewall
新規作成されたmiddlewareファイルを編集する。
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class IpFirewall
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
// IPの配列
$ip = [
// ここに閲覧OKのIPアドレスを書く
['ip' => '127.0.0.1'],
['ip' => '127.0.0.2']
];
// アクセスされたIPアドレスが$ipに含まれているかチェック
$detect = collect($ip)->contains('ip', $request->ip());
// $ipに設定したIPアドレス以外のアクセス時の処理
if (!$detect) {
return redirect('login');
}
// $ipに設定したIPアドレスからのアクセス時はrequestを通す
return $next($request);
}
}
作成したmiddlewareを app/Http/Kernel.php に追加する。
protected $routeMiddleware = [
...
'ip.firewall' => \App\Http\Middleware\IpFirewall::class,
];
routesファイルでIP制限をかけたいページは、追加したmiddlewareを通す。
Route::view('/test', 'test')->name('test')->middleware('ip.firewall');
こうすることで、簡単にIPアドレスでの閲覧制限をつけることができました。
このカテゴリの最新記事
2024.08.22
centos7サポート終了に伴うOSの移行について
2023.10.02
【Linux】よく使うLinuxコマンド一覧
2024.09.19
【Linux】CentOS7とUbuntuのSSH接続設定の相違
2024.06.14
WITH句を使った最終行に合計行を追加する方法