2024
November
22
【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アドレスでの閲覧制限をつけることができました。
このカテゴリの最新記事
2023.07.03
間違いやすいSQLのコマンド5選
2024.02.09
バッチファイルで一般権限で実行後、管理者権限でも動かす方法
2024.06.14
WITH句を使った最終行に合計行を追加する方法
2023.09.04
【jQuery】slickでスライダーの位置がズレる時の対処法