Laravel学習記録 #030 CSRF対策を学ぶ
LaravelでのCSRF対策について学習したものをまとめています。
CSRFについて
ログイン機能のあるwebアプリケーションで発生しうる
認証済みユーザーに代わって不正なコマンドを実行するサイバー攻撃
不正なリンクを踏ませることで、利用者が操作したかのようになる
不正な送金やパスワード、ユーザーの変更など身に覚えのないことが行われてしまう。
ざっくり攻撃の流れ
①太郎くんがWEBアプリにログインします。
②認証されてログイン状態になります。
③悪意のあるユーザーによって不正なリンクを踏まされます。(メールとか)
④リンクには不正な送金やユーザーパスワード変更などの操作が仕込まれています。
⑤webアプリケーションはユーザーからの操作と判断してしまうので処理が通ってしまいます。
⑥パニックです。
対策
CSRFには「処理リクエストが正しいものかを確認する」という方法で対応します。
具体的には「トークン」を生成し
サーバー上のセッションと入力フォームhiddenにセット
リクエストが行われるとその値を比較検証します。
設定する
Laravelでは簡単にcsrfを設定できます。
Bladeテンプレートの場合Form要素ないに
@csrf
を追加するだけでトークンがセットされます。
<form method="POST" action="/profile">
@csrf
</form>
これだけで基本はOK
この記事が気に入ったらサポートをしてみませんか?