見出し画像

Laravel学習記録 #030 CSRF対策を学ぶ

LaravelでのCSRF対策について学習したものをまとめています。

CSRFについて

  • ログイン機能のあるwebアプリケーションで発生しうる

  • 認証済みユーザーに代わって不正なコマンドを実行するサイバー攻撃

  • 不正なリンクを踏ませることで、利用者が操作したかのようになる

  • 不正な送金やパスワード、ユーザーの変更など身に覚えのないことが行われてしまう。

ざっくり攻撃の流れ

①太郎くんがWEBアプリにログインします。
②認証されてログイン状態になります。
③悪意のあるユーザーによって不正なリンクを踏まされます。(メールとか)
④リンクには不正な送金やユーザーパスワード変更などの操作が仕込まれています。
⑤webアプリケーションはユーザーからの操作と判断してしまうので処理が通ってしまいます。
⑥パニックです。

対策

CSRFには「処理リクエストが正しいものかを確認する」という方法で対応します。

具体的には「トークン」を生成し
サーバー上のセッションと入力フォームhiddenにセット
リクエストが行われるとその値を比較検証します。

設定する

Laravelでは簡単にcsrfを設定できます。
Bladeテンプレートの場合Form要素ないに
@csrf
を追加するだけでトークンがセットされます。

<form method="POST" action="/profile">
    @csrf
</form>

これだけで基本はOK

この記事が気に入ったらサポートをしてみませんか?