一覧に戻る
Lv.2

CSRF(クロスサイトリクエストフォージェリ)

Cross-Site Request Forgery

本人の知らないところで勝手に操作や投稿をされてしまうWebサイトの脆弱性のこと。

簡単に説明すると

CSRFは、ログイン中のWebサイトで自分の意図しない操作を勝手に実行されてしまう攻撃のことだよ。 例えば、SNSにログインしたまま悪意のあるサイトを訪れると、裏で勝手に変な投稿をされたり、パスワードを変えられたりすることがあるんだ。 これは、ブラウザが自動で送る認証情報が悪用されることで起こる現象だよ。 掲示板や通販サイト、銀行の振込画面などでこの弱点があると、大きな被害につながる可能性があるんだ。

名前のヒミツ

CSRF(シーエスアールエフ)は、Cross-Site(サイトをまたいだ)Request(依頼)Forgery(偽造)の頭文字をとったものなんだ。 英語の通り、別のサイトから偽の依頼を送って操作を偽造することを意味しているよ。 日本語では「リクエスト強要」とも呼ばれていて、Webサイトの安全性を脅かす問題の1つなんだ。

くわしく見てみよう!

CSRFとは、Webサイトの脆弱性の1つで、ユーザーが意図しないリクエストを強制的に送らされてしまう攻撃手法のことだよ。
ユーザーがログインしている状態のブラウザを利用して、攻撃者が用意した罠から偽の命令を送信させるんだ。

仕組みをかんたんに言うと、ブラウザが持つ「自動で認証情報を送る」という性質を悪用しているんだよ。
多くのWebサイトでは、1度ログインするとCookieという仕組みを使ってログイン状態を保っているんだ。
攻撃用サイトに設置されたボタンやリンクを踏むと、ブラウザがそのCookieと一緒に「投稿する」などの命令を勝手にターゲットのサイトへ送ってしまうんだね。

この攻撃が成功すると、ユーザーの知らないところで勝手な書き込みや商品の購入、パスワードの変更などが実行されてしまうんだ。
サイト側は、送られてきたリクエストが本人の意思によるものか、罠によるものかを見分けることができないから、そのまま処理を受け付けてしまうんだよ。

対策としては、リクエストが本当にそのサイト内から送られたものかを確認する「トークン」という仕組みを導入するのが一般的だよ。
また、ログインが必要な操作の直前にパスワードを再入力させたり、ワンタイムパスワードを使ったりするのも有効な手段なんだ。
利用者ができる対策は、不審なリンクをむやみに踏まないことや、使い終わったらログアウトを徹底することだね。