- APIトークンの使用: APIトークンは、非ログインユーザーの認証に使用される一般的な手法です。ユーザーがAPIにアクセスする前に、トークンを生成し、それをリクエストのヘッダーに含めることで認証を行います。以下は、LaravelでAPIトークンを使用する例です。
// トークンの生成
$token = Str::random(60);
$user->api_token = hash('sha256', $token);
$user->save();
// ルートの定義
Route::middleware('auth:api')->get('/endpoint', function () {
// APIの処理
})->name('api.endpoint');
- APIレート制限:
APIのレート制限は、悪意のあるユーザーや過剰なリクエストに対する保護を提供します。Laravelでは、ミドルウェアとして
throttle
を使用してレート制限を実装できます。以下は、リクエストごとの最大数と時間間隔を指定したレート制限の例です。
// ルートの定義
Route::middleware('throttle:60,1')->get('/endpoint', function () {
// APIの処理
})->name('api.endpoint');
- リクエストの検証: APIに送信されるリクエストの検証は、不正なデータや攻撃からの保護を強化します。Laravelでは、リクエストクラスを使用してリクエストの検証を行うことができます。以下は、リクエストクラスを使用してリクエストを検証する例です。
// リクエストクラスの生成
php artisan make:request MyRequest
// リクエストクラス内のルール定義
public function rules()
{
return [
'field' => 'required',
];
}
// ルートの定義
Route::middleware('auth:api')->post('/endpoint', 'Controller@method')->name('api.endpoint');
- CORSの設定:
Cross-Origin Resource Sharing(CORS)は、異なるドメインからのリクエストを制限するためのセキュリティメカニズムです。Laravelでは、
cors
ミドルウェアを使用してCORSの設定を行うことができます。以下は、CORSの設定例です。
// config/cors.phpファイルの編集
'paths' => ['api/*'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_headers' => ['*'],
これらは、Laravel APIの非ログインユーザー向けのセキュリティ対策の一部です。セキュリティ要件に合わせてこれらの方法を適用し、APIの保護を強化してください。