- 1. 概要
- 2. csrf_token
- 3. @csrf
1. 概要
「Latavel」では、「CSRF」攻撃を避けるための仕組みに関する記述方法が、あらかじめ用意されています。
<form action="" method="POST">
・・・ 略 ・・・
</form>
で記述する「POST」リクエストの際に、「<form>」~「</form>」の間に
<input type="hidden" name="_token" value="生成された文字列">
を埋め込んでおくことによって、「POST」リクエストした側の文字列と受け取った側の文字列が一致しているかを確認して、一致しない場合は
というエラーになります。
この文字列自体を生成する仕組みも含めて、「Laravel」では用意されています。
2. csrf_token
「CSRF保護 5.4 Laravel」に書かれていますので、いささか古い記述方法。
「*.blade.php」内に
<form action="" method="POST">
{{ csrf_field() }}
・・・ 略 ・・・
</form>
と書いてやれば、「CSRF」トークンってやつが埋め込まれます。
3. @csrf
こちらの方が、おそらく比較的、新しい書き方。
わたしが確認しているのは「Laravel Framework 8.40.0」です。
「*.blade.php」内に
<form action="" method="POST">
@csrf
・・・ 略 ・・・
</form>
と記述します。
|