ホームページ >バックエンド開発 >PHPチュートリアル >Laravel ミドルウェア: クロスサイト リクエスト フォージェリ (CSRF) 攻撃を防ぐために使用されます。
Laravel ミドルウェア: クロスサイト リクエスト フォージェリ (CSRF) 攻撃の防止に使用されます
概要:
インターネット アプリケーションでは、クロスサイト リクエスト フォージェリ (CSRF) 攻撃は一般的なネットワーク セキュリティの脅威です。 CSRF 攻撃は悪意のあるリクエストを偽造し、ユーザーが知らないうちにパスワードの変更や資金の送金などの違法な操作を実行できるようにします。この種の攻撃を防ぐために、Laravel はアプリケーションを CSRF 攻撃から簡単に保護できる組み込みミドルウェアを提供します。
CSRF ミドルウェアの使用:
Laravel では、CSRF ミドルウェアの使用は非常に簡単です。まず、アプリケーションのルーティング ファイルにミドルウェアを登録する必要があります。 app/Http/Kernel.php
ファイルを開き、web
ミドルウェア グループを見つけて、次のように VerifyCsrfToken
ミドルウェアを追加します。ミドルウェアが登録されると、Laravel はリクエストごとにトークンを自動的に生成し、セッションに保存します。 POST、PUT、または DELETE リクエストが送信されるたびに、Laravel はリクエスト内のトークンとセッションに保存されているトークンを比較し、それらが矛盾する場合、リクエストは拒否され、エラーが返されます。
CSRF トークンの生成:
Laravel は、ビューで CSRF トークンを生成するためのグローバルcsrf_token
ヘルパー関数を提供します。 HTML フォームでは、ff9c23ada1bcecdd1a0fb5d5a0f18437
タグに非表示の入力フィールドを追加し、入力フィールドの値を CSRF トークンに設定することで、CSRF 攻撃からフォームを保護できます。 <pre class='brush:php;toolbar:false;'>protected $middlewareGroups = [
'web' => [
// 其他中间件...
AppHttpMiddlewareVerifyCsrfToken::class,
],
// 其他中间件组...
];</pre>
上の例では、
ディレクティブを使用して、非表示の CSRF トークン入力フィールドを生成しました。この命令により、生成された HTML に非表示の d5fd7aea971a85678ba271703566ebfd
タグが自動的に挿入されます。名前は _token
、値は CSRF トークンです。 Laravel の組み込みフォーム ヘルパー関数 (
など) を使用する場合、CSRF トークン入力フィールドを手動で追加する必要はありません。Laravel はそれを自動的に生成します。あなた。 CSRF トークンを手動で検証する:
csrf_token
補助関数を使用して現在のリクエストの CSRF トークンを取得し、Request## の
session メソッドを呼び出してセッションに保存されているトークンを取得できます。 # 物体。
以下は、コントローラー内の CSRF トークンを手動で検証する例です。
<form method="POST" action="/submit"> @csrf <!-- 其他表单字段... --> <button type="submit">提交</button> </form>上の例では、
hash_equals
関数を使用して、 request CSRF トークン検証のセキュリティを確保するために、セッション内のトークンと一致しているかどうか。概要:
Laravel の CSRF ミドルウェアは、クロスサイト リクエスト フォージェリ攻撃を防ぐシンプルかつ強力な方法を提供します。 CSRF トークンを自動的に生成および検証することで、悪意のあるリクエストからアプリケーションを効果的に保護できます。自動検証でも手動検証でも、Laravel はアプリケーションを保護するための柔軟で信頼性の高いオプションを提供します。
以上がLaravel ミドルウェア: クロスサイト リクエスト フォージェリ (CSRF) 攻撃を防ぐために使用されます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。