ログイン中に「勝手に操作」される不正操作攻撃(CSRF・クリックジャッキングの仕組みと、ホームページでできる対策)
結論: CSRF(クロスサイト・リクエスト・フォージェリ)とクリックジャッキングは、ログイン中の利用者に、本人が意図しない操作をさせる攻撃です。パスワードを盗まなくても、罠のページを開かせるだけで、設定の変更や退会、情報の公開などを実行されるおそれがあります。対策の基本は、重要な操作に「本人の操作である証拠(トークン)」を求めることと、自社のページを他のサイトに埋め込ませないヘッダを設定することです。会員ページや予約システム、CMSの管理画面を持つ会社は、制作会社と一緒に対策状況を確認しましょう。
公開日 2026.10.19
この記事でわかること
CSRFとは(ログイン中に「勝手に送信」される)
結論: CSRFは、ログイン中の利用者に罠のページを開かせ、本人になりすました「送信」をホームページへ送り込む攻撃です。ホームページ側が「本人が自分の画面から操作したのか」を見分ける仕組みを持っていないと、その送信を正しい操作として受け付けてしまいます。
攻撃の流れ: ① 利用者が会員ページや管理画面にログインしたままにする → ② 攻撃者が用意したページ(メールやSNSのリンク先など)を開く → ③ そのページに仕込まれたフォームが、利用者のブラウザから自動で送信される → ④ ホームページは、ログイン中の本人からの送信だと判断して処理してしまう、という流れです。
起こりうる被害: IPA(情報処理推進機構)は、不正送金や意図しない商品購入、退会処理、登録情報の改ざん、パスワードなどの設定変更、掲示板への不適切な書き込みなどを挙げています。 IPA
パスワードが漏れていなくても起きる: 攻撃者はパスワードを知る必要がありません。利用者のブラウザがログイン状態(Cookie)を自動で送るしくみを悪用するため、「パスワードを強くしているから安全」とは言えないのが特徴です。
クリックジャッキングとは(見えないボタンを「押させる」)
結論: クリックジャッキングは、攻撃者のページの上に、狙ったホームページを透明にして重ねて表示し、利用者に見えないボタンを押させる攻撃です。利用者は「プレゼントに応募する」などのボタンを押したつもりでも、実際には重ねられたページの「公開設定を変更する」ボタンを押している、という状態になります。
しくみ: Webページは、iframe(アイフレーム)という機能で、他のページの中に別のページを埋め込んで表示できます。攻撃者はこの機能で狙ったページを埋め込み、透明にして、自分のページのボタンと位置を重ねます。
起こりうる被害: IPAは、被害はCSRFと似ており、退会処理や情報の意図しない公開などが起こりうるとしています。特に、利用者の情報の公開範囲を変える機能は被害が大きくなるため注意が必要です。 IPA
マウス操作だけで完了する機能が狙われる: 確認画面や再入力がなく、ボタンを1〜2回押すだけで実行できる機能ほど、この攻撃に悪用されやすくなります。
なぜ今、対策を見直すべきなのか
結論: CSRFは古くから知られた攻撃ですが、いまも「最も危険な弱点」の上位にあり、国内の製品でも新しい脆弱性が見つかり続けています。AIで弱点を探す攻撃が広がるなか、昔に作ったまま見直していない会員機能や管理画面は、見つけられやすい入口になります。
「最も危険な弱点」の3位: 米国のMITREが公開した「最も危険なソフトウェアの弱点 Top 25」の2025年版で、CSRFは前年から1つ順位を上げて3位でした。1位はクロスサイトスクリプティング、2位はSQLインジェクションです。 @IT
国内の製品でも見つかり続けている: 2026年5月には、富士通Japanの「Musetheque V4 情報公開 for IPKNOWLEDGE」に、ログイン中の利用者が細工されたページを開くと意図しない操作をさせられるCSRFの脆弱性が見つかり、JVN(脆弱性対策情報ポータル)で公表されました。 ScanNetSecurity
弱点探しにAIが使われる時代: 専門家は、AIを使えばシステムの弱点探しが数時間でできると指摘しています。対策の抜けがある古い画面は、攻撃者に先に見つけられてしまうおそれがあります。詳しくはAIで弱点を探すサイバー攻撃が急増 で解説しています。
対策が必要なページ・機能
結論: 対策が特に必要なのは、ログインした人だけが使える機能です。会員ページや予約システムがない会社でも、ホームページを更新するCMSの管理画面は対象になります。
CMSの管理画面: ページの公開・削除、管理者アカウントの追加、パスワードの変更などができる管理画面は、乗っ取られたときの被害が最も大きい場所です。プラグインに脆弱性が見つかる例も多く、WordPressはなぜ狙われる? でも解説しています。
会員ページ・マイページ: 登録情報の変更、メールアドレスやパスワードの変更、退会、公開範囲の設定などの機能が対象です。
予約・購入・申込みの確定画面: お金や個人情報が動く処理は、IPAも特に注意が必要なサイトとして挙げています。
業務システム・社内向けのWeb画面: 顧客情報の閲覧・出力や、権限の変更ができる画面も対象です。社内向けでも、社員が外部のページを開けば攻撃は成立します。
経営者が制作会社に確認する4項目
結論: 技術的な中身まで理解する必要はありません。次の4つを制作会社・保守会社に質問し、「対応済み」「対応していない」「わからない」をはっきりさせることが第一歩です。
① ログイン後の重要な操作に、CSRF対策がされているか: 「会員情報の変更や管理画面の操作に、ワンタイムトークンなどのCSRF対策は入っていますか?」と聞いてみてください。
② 他のサイトに埋め込まれない設定になっているか: 「クリックジャッキング対策として、X-Frame-Optionsやframe-ancestorsのヘッダは設定されていますか?」と確認します。
③ CMSとプラグインは最新の状態か: 自社で作り込んだ部分だけでなく、CMSやプラグインのCSRF脆弱性も定期的に公表されます。保守契約に更新作業が含まれているかを確かめます。
④ 重要な操作の前に、再確認や再ログインがあるか: 退会、パスワード変更、管理者の追加など、取り返しのつかない操作の前に、パスワードの再入力を求める設計になっているかを確認します。
技術担当者が実装する対策
結論: CSRFは「トークンによる確認」を基本に、Cookieの設定と再認証を組み合わせて防ぎます。クリックジャッキングは、HTTPレスポンスヘッダで自社ページの埋め込みを禁止するのが基本です。
CSRFの対策
① 重要な処理にワンタイムトークンを使う: 処理を実行するフォームに、推測できない値(トークン)をhiddenで埋め込み、送信時にサーバー側の値と一致した場合だけ処理します。IPAの「安全なウェブサイトの作り方」でも、根本的な解決策として挙げられています。CMSやWebアプリのフレームワークには、この仕組みが標準で用意されていることが多いため、無効にしていないかも確認します。
② 状態を変える処理はPOSTで受け付ける: 登録・変更・削除などの処理を、URLを開くだけ(GET)で実行できる作りにしないことが前提です。
③ CookieにSameSite属性を設定する: ログイン状態を保つCookieに SameSite=Lax または SameSite=Strict を設定すると、他のサイトからの送信時にCookieが送られにくくなります。ブラウザによっては既定でLaxが適用されますが、すべての利用環境で同じ動きになるとは限らないため、明示的に設定し、トークンによる確認と併用します。 MDN
④ 取り返しのつかない操作は再認証する: 退会、パスワードやメールアドレスの変更、管理者の追加などは、実行直前にパスワードの再入力を求めます。CSRFとクリックジャッキングの両方に効果があります。
⑤ 送信元(Origin・Refererヘッダ)を確認する: 送信元が自社のドメインかどうかを確認する方法は、トークンを補う対策として有効です。ただし、ヘッダを送らない利用環境もあるため、これだけに頼らないようにします。
クリックジャッキングの対策
① Content-Security-Policyのframe-ancestorsを設定する: Content-Security-Policy: frame-ancestors 'self' のように指定すると、自社以外のサイトから埋め込めなくなります。どこからも埋め込ませない場合は 'none' を指定します。このヘッダは、HTMLの<meta>タグでは指定できず、サーバーの設定で送る必要があります。 MDN
② X-Frame-Optionsもあわせて送る: 古いブラウザへの備えとして、X-Frame-Options: SAMEORIGIN(または DENY)も設定します。IPAも根本的な解決策としてこのヘッダの出力を挙げています。
③ 全ページに一括で設定する: ログイン画面だけでなく、ログイン後に表示されるすべてのページで有効になるよう、サーバーやCDN、WAFの設定で全体に適用するのが確実です。
こうしたヘッダの設定は、使っていないファイルの整理などとあわせて行う「ハードニング(堅牢化)」の一部です。考え方は古いファイルの整理とハードニングの重要性 でも紹介しています。
自社サイトの対策状況を確認する方法
結論: クリックジャッキング対策のヘッダは、ブラウザの機能で誰でも確認できます。CSRF対策がきちんと機能しているかの確認は、専門家による脆弱性診断が確実です。
ヘッダを確認する(目安:5分): パソコンのChromeで自社のページを開き、F12キーで開発者ツールを開きます。「ネットワーク」タブでページを再読み込みし、一番上の項目を選んで「レスポンスヘッダー」に content-security-policy(frame-ancestorsを含む)や x-frame-options があるかを確認します。どちらもなければ、未対策の可能性があります。
フォームにトークンがあるかを見る: 会員情報の変更画面などで、ページのソースに「token」「csrf」「nonce」などの名前が付いたhiddenの項目があるかを見ると、対策の有無の手がかりになります。ただし、項目があっても正しく検証されているとは限りません。
専門家の脆弱性診断を受ける: トークンが毎回変わるか、サーバー側で本当に検証しているかなどは、実際に攻撃を試すWebアプリケーション診断で確認します。他社のサイトに対して試すことは不正アクセスにあたるおそれがあるため、確認は必ず自社のサイトで行ってください。
バンブーハウスでは、ホームページとサーバーのセキュリティ診断から、ヘッダ設定やCSRF対策の修正、その後の運用まで一貫して対応しています。詳しくは高セキュリティなホームページ制作・セキュアサーバー構築 をご覧ください。
今回のポイントまとめ
不正操作攻撃(CSRF・クリックジャッキング)の要点
項目
CSRF
クリックジャッキング
手口
罠のページから、ログイン中の本人になりすました送信を行わせる
透明にして重ねたページの、見えないボタンを押させる
主な被害
設定変更、退会、不正な購入・送金、書き込み
公開範囲の変更、退会など、ボタン操作で完了する処理
基本の対策
ワンタイムトークン、POSTでの受付、SameSite属性
frame-ancestors、X-Frame-Options
共通の対策
重要な操作の前のパスワード再入力、CMS・プラグインの更新、脆弱性診断
参考
IPA「安全なウェブサイトの作り方」1.6
IPA「安全なウェブサイトの作り方」1.9
よくあるご質問(FAQ)
Q1. HTTPS(SSL)に対応していれば防げますか?
防げません。HTTPSは通信の内容を暗号化して盗み見や改ざんを防ぐ仕組みで、「本人が意図した操作かどうか」を確かめる仕組みではないためです。CSRFやクリックジャッキングには、トークンによる確認や埋め込み禁止のヘッダなど、専用の対策が必要です。
Q2. 会員機能のない会社案内サイトでも対策は必要ですか?
必要です。会員機能がなくても、ホームページを更新するCMSの管理画面はログインして使う機能なので、CSRFの対象になります。クリックジャッキング対策のヘッダはサーバーの設定で全ページに一括で適用できるため、規模にかかわらず設定しておくことをおすすめします。
Q3. WordPressを使っていれば対策済みですか?
本体には、トークンにあたる仕組み(nonce)が用意されています。ただし、プラグインやテーマがこの仕組みを正しく使っていない場合があり、プラグインのCSRF脆弱性は繰り返し公表されています。本体・プラグイン・テーマを最新の状態に保ち、使っていないプラグインは削除することが大切です。
両方の設定をおすすめします。新しいブラウザではframe-ancestorsが使われ、X-Frame-Optionsは古いブラウザへの備えになります。自社のサイト内だけで埋め込みを使っている場合は、frame-ancestorsに 'self'、X-Frame-OptionsにSAMEORIGINを指定するのが一般的です。
Q5. 設定すると、YouTubeやGoogleマップの埋め込みが表示されなくなりますか?
表示されなくなることはありません。frame-ancestorsやX-Frame-Optionsが制限するのは「自社のページが、他のサイトに埋め込まれること」です。自社のページにYouTubeや地図を埋め込むことには影響しません。ただし、自社のページを関連会社のサイトなどに埋め込んで表示している場合は、そのドメインを許可する設定が必要です。
Q6. 自社のサイトが対策済みか、どうすればわかりますか?
クリックジャッキング対策のヘッダは、ブラウザの開発者ツールで確認できます。CSRF対策が正しく機能しているかは外から見ただけでは判断が難しいため、制作会社への確認や、専門家による脆弱性診断をおすすめします。バンブーハウスでも、サイトの状況を伺ったうえで確認範囲をご提案しています。
WEB制作をご検討の皆様へ AI時代を見据えた、安心のWEB制作をご提案します
「AI対応型ホームページ」って何? 専門用語なしでやさしく解説
Claude・ChatGPTと連携するAI搭載CMS、 はじまりました
その古いホームページ、機会損失かもしれません。 運用型リニューアルという選択
検索は「探す」から「聞く」へ。 AI検索対策(AEO/GEO/LLMO)の無料相談
参考情報