XSS・SQLインジェクション・CSRFとは Webサイトを狙う5つの攻撃と対策の違い
Webサイトへの入力の扱いを誤ると、情報を盗まれるおそれがあります。 ログイン中の利用者に、意図しない操作をさせる攻撃もあります。 このページは、XSSなど5つの攻撃を説明する用語集です。 攻撃が起きる場所によって、必要な対策は異なります。
| 用語(英語/日本語) | 何の略か | 攻撃が起きる場所 | 実例のCVE |
|---|---|---|---|
| XSS(クロスサイトスクリプティング) | Cross-site Scripting | 閲覧者のブラウザ | CVE-2023-5631 |
| SQLインジェクション(SQL Injection) | 略語ではない | データベース | CVE-2023-34362 |
| CSRF(クロスサイトリクエストフォージェリ) | Cross-Site Request Forgery | ログイン中の利用者の操作 | 確認できませんでした |
| OSコマンドインジェクション(OS Command Injection) | 略語ではない | サーバーのOS | CVE-2024-3400 |
| ディレクトリトラバーサル(Directory Traversal) | 略語ではない | サーバーのファイル | CVE-2021-41773 |
XSSは、ページを開いた人のブラウザで起きます。 SQLインジェクションは、情報を保存・検索するデータベースへの命令に関わります。 CSRFは、利用者本人の意思に基づく操作かどうかに関わります。 OSコマンドインジェクションは、サーバーの基本ソフトウェアへの命令に関わります。 ディレクトリトラバーサルは、読み書きできるファイルの範囲に関わります。
CWEは、弱点の種類を表す番号です。 CVEは、公表された個々の脆弱性を識別する番号です。 脆弱性とは、攻撃に使われうるプログラムや設定の弱点です。 NVDは、米国の公的な脆弱性情報データベースです。 OWASP Top 10は、Webプログラムの代表的なセキュリティリスクをまとめた資料です。
クロスサイトスクリプティング(Cross-site Scripting、XSS)
- 何の略か Cross-site Scripting の略です。
- 日本語では 「クロスサイトスクリプティング」と呼びます。
- 一言の定義 Webページに紛れ込んだ不正なプログラムが、閲覧者のブラウザで実行される攻撃です。
- どんなリスクがあるか 利用者が画面に入力した情報を盗まれるおそれがあります。 ログイン中の利用者の権限で、操作を実行されるおそれもあります。
- 影響を受ける運用 投稿欄や検索結果に、利用者が入力した文字を表示するサイトです。 WordPressは、Webサイトを管理するプログラムです。 表示を拡張するプログラム(プラグイン)をWordPressに追加している運用も該当します。
- 実際の事例 メールをブラウザで読むプログラムのRoundcubeで、XSSの悪用が確認されています。 NVDの記録では、CVE-2023-5631は2023年10月26日に米国のサイバーセキュリティ当局CISAの悪用確認済み脆弱性一覧へ追加されています。 原因は、メールに含まれる画像データの処理の不備でした。 開発元は2023年10月16日、修正版の1.6.4を公開しました。 対象の版を使っていた運用では、修正版への更新が対策でした。 出典は、NVD「CVE-2023-5631」とRoundcube「Security update 1.6.4 released」です。
- 分類番号 CWE-79(Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')、ページ生成時の入力処理の不備)です。 OWASP Top 10の2025年版では、A05:2025 Injection(入力が不正な命令として扱われる弱点の分類)に含まれます。 事例の脆弱性番号はCVE-2023-5631です。
SQLインジェクション(SQL Injection)
- 何の略か 用語全体は略語ではありません。 SQLは Structured Query Language の略です。 SQLは、データベースに検索や更新を指示するための言語です。
- 日本語では 「SQLインジェクション」と呼びます。
- 一言の定義 入力された文字を通じて、データベースへの命令を不正に変える攻撃です。
- どんなリスクがあるか 非公開の顧客情報を読み取られるおそれがあります。 保存した情報を変更・削除されるおそれもあります。
- 影響を受ける運用 検索欄や会員機能から、データベースを利用するサイトです。 データベースへの命令文を独自のプログラムで組み立てている運用も該当します。
- 実際の事例 2023年5月、ファイル転送プログラムのMOVEit Transferで、SQLインジェクションが悪用されました。 攻撃者は、情報を盗むための不正なプログラムを設置しました。 データベースから情報が盗まれました。 原因となった脆弱性の番号はCVE-2023-34362です。 対策は、開発元が公開した修正版の適用です。 出典は、2023年6月7日公表の米国連邦捜査局FBIとサイバーセキュリティ当局CISAによる共同注意喚起です。
- 分類番号 CWE-89(Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')、SQLの命令に含まれる特殊な文字の処理の不備)です。 OWASP Top 10の2025年版では、A05:2025 Injection(入力が不正な命令として扱われる弱点の分類)に含まれます。 事例の脆弱性番号はCVE-2023-34362です。
クロスサイトリクエストフォージェリ(Cross-Site Request Forgery、CSRF)
- 何の略か Cross-Site Request Forgery の略です。
- 日本語では 「クロスサイトリクエストフォージェリ」と呼びます。 「リクエスト強要」と呼ぶこともあります。
- 一言の定義 ログイン中の利用者のブラウザを通じて、本人が意図しない操作の要求をサイトへ送らせる攻撃です。
- どんなリスクがあるか 会員の登録情報を勝手に変更されるおそれがあります。 管理者の権限で、設定変更や投稿を実行されるおそれもあります。
- 影響を受ける運用 ログイン後に、登録情報やサイトの設定を変更できるサイトです。 ブラウザが自動送信するログイン情報だけで、変更を受け付ける運用が該当します。
- 実際の事例 確認できませんでした。
- 分類番号 CWE-352(Cross-Site Request Forgery (CSRF)、利用者が意図した要求かどうかの確認の不備)です。 OWASP Top 10の2025年版では、A01:2025 Broken Access Control(許可する操作の制限の不備)に含まれます。 実際の事例に対応するCVE番号は、確認できませんでした。
OSコマンドインジェクション(OS Command Injection)
- 何の略か 用語全体は略語ではありません。 OSは Operating System の略です。 OSは、サーバーなどを動かす基本ソフトウェアです。
- 日本語では 「OSコマンドインジェクション」と呼びます。 コマンドとは、OSに処理を指示する命令です。
- 一言の定義 Webサイトへの入力を通じて、サーバーのOSに意図しない命令を実行させる攻撃です。
- どんなリスクがあるか サーバー内のファイルを盗まれるおそれがあります。 不正なプログラムを実行されるおそれもあります。
- 影響を受ける運用 画像変換やファイル処理のために、WebプログラムからOSの命令を呼び出すサイトです。 入力された文字を命令に組み込む運用が該当します。
- 実際の事例 Palo Alto Networksは2024年4月12日、PAN-OSのGlobalProtect機能に関する脆弱性を公表しました。 PAN-OSは、通信を制限するファイアウォール機器を動かすプログラムです。 GlobalProtectは、社外から社内のネットワークへ接続するための機能です。 同社は、この脆弱性を悪用した攻撃を確認しています。 原因は、ファイルを不正に作成できる弱点からOSへの命令実行につながることでした。 ログインしていない攻撃者でも、機器の強い権限でプログラムを実行できる状態でした。 開発元は、修正版への更新を求めています。 出典は、Palo Alto Networks「CVE-2024-3400」の公表です。
- 分類番号 この用語に対応する分類は、CWE-78(Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')、OSの命令に含まれる特殊な文字の処理の不備)です。 OWASP Top 10の2025年版では、A05:2025 Injection(入力が不正な命令として扱われる弱点の分類)に含まれます。 事例の脆弱性番号はCVE-2024-3400です。 NVDは、CVE-2024-3400をCWE-77(命令の注入)とCWE-20(入力の確認の不備)に分類しています。
ディレクトリトラバーサル(Directory Traversal)
- 何の略か 略語ではありません。
- 日本語では 「ディレクトリトラバーサル」と呼びます。 「パストラバーサル」とも呼びます。 ディレクトリは、ファイルをまとめるフォルダのことです。 パスは、ファイルやフォルダの場所を表す文字列です。
- 一言の定義 指定されたファイルの場所を不正に操作し、許可されたフォルダの外にあるファイルへアクセスする攻撃です。
- どんなリスクがあるか 公開していない設定ファイルを読み取られるおそれがあります。 書き込み機能にも弱点がある場合は、ファイルを上書きされるおそれがあります。
- 影響を受ける運用 指定されたファイル名を基に、ダウンロードやファイル保存を行うサイトです。 表示する画面のファイルを入力値で切り替える運用も該当します。
- 実際の事例 2021年10月、Apache HTTP Server 2.4.49のパストラバーサルに関する注意喚起が出ました。 Apache HTTP Serverは、Webページを配信するサーバープログラムです。 開発元は、この脆弱性を悪用する攻撃を確認していました。 原因は、ファイルの場所を表す文字列を整える処理の不備でした。 公開範囲の外にあるファイルを読み取られるおそれがありました。 ファイルへのアクセス制限が適切でない設定が、影響を受ける条件でした。 最初の修正版2.4.50にも、修正が不十分な箇所が残っていました。 当時は、追加の修正版2.4.51への更新が求められました。 出典は、JPCERT/CCが2021年10月6日に公表した注意喚起です。 修正版に関する追記日は、2021年10月8日です。
- 分類番号 CWE-22(Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')、ファイルの場所を許可したフォルダ内に制限する処理の不備)です。 OWASP Top 10の2025年版では、A01:2025 Broken Access Control(許可する操作の制限の不備)に含まれます。 事例の脆弱性番号はCVE-2021-41773です。 修正が不十分だった問題の番号はCVE-2021-42013です。
自分のサイトで確かめる方法
確認の対象は、自分が管理するサイトだけにします。 ブラウザで普通に閲覧するだけでは、5つの攻撃への対策が十分かどうかを断定できません。
- WordPressなどの管理画面で、使用中のプログラムの名前と版を確認します。
- 開発元の更新情報で、5つの攻撃に関する修正が出ていないか確認します。
- ブラウザの開発者ツールで、自分のページが返す情報を確認します。
開発者ツールは、ブラウザに付属するページの調査機能です。
「ネットワーク」で自分のページを選び、受信した応答の「レスポンスヘッダー」を開きます。
レスポンスヘッダーは、サーバーからブラウザへ送られる制御情報です。
Content-Security-Policyという名前の項目を探します。 これは、不正なプログラムの実行などを制限する方針(CSP)を指定する項目です。 CSPの有無だけでは、XSSの弱点があるかどうかは判断できません。
攻撃用の文字列を入力する試験は、このページでは扱いません。 設定変更やデータ削除を伴う操作も、確認のために実行しません。
修正方法の要点
XSSは表示先に応じて文字を処理する
入力された文字を表示するときは、画面の表示形式に合う処理を行います。 HTMLというページの記述言語では、特別な意味を持つ文字を表示用の文字へ置き換えます。 この処理をエスケープと呼びます。 WordPressでも、文字を表示する場所に応じた処理が必要です。
SQLインジェクションは命令と入力値を分ける
データベースへの命令には、入力値を別に渡す仕組みを使います。 この仕組みを、プレースホルダーを使った処理と呼びます。 入力値を命令文へ直接つなげないようにします。
CSRFは操作を受け付ける側で確認する
設定変更などの要求には、正規の画面からの操作か確かめるための値を付けます。 この値をCSRFトークンと呼びます。 サーバー側で、送られた値が正しいか検証します。 ログインしている人に操作権限があるかも、別に確認します。
OSコマンドインジェクションはOSへの命令を避ける
同じ処理ができるプログラムの機能があれば、OSの命令の代わりに利用します。 OSの命令が必要な場合は、命令の種類を固定します。 命令と入力値を別々に渡せる機能を使います。 渡す値は、あらかじめ許可した形式に限定します。
ディレクトリトラバーサルはファイルの範囲を制限する
利用者の入力を、そのままファイルの場所として使わないようにします。 利用者に渡す識別番号と、サーバー内のファイルの場所を対応付けます。 ファイルへのアクセス権限も、サーバー側で確認します。
nginxやApacheは、Webページを配信するサーバープログラムです。 これらの設定だけで、Webプログラム内の弱点をすべて修正することはできません。 WordPressの本体や、機能を追加するプラグインに修正版がある場合は、更新を適用します。
出典
-
MITRE「CWE-22」(2026-10-28 取得) https://cwe.mitre.org/data/definitions/22.html
-
JPCERT/CC「Apache HTTP Serverのパストラバーサルの脆弱性(CVE-2021-41773)に関する注意喚起」(2021-10-06 公表、2021-10-08 更新、2026-10-28 取得) https://www.jpcert.or.jp/at/2021/at210043.html
-
NVD「CVE-2021-42013」(2026-10-28 取得) https://nvd.nist.gov/vuln/detail/CVE-2021-42013
-
MITRE「CWE-78」(2026-10-28 取得) https://cwe.mitre.org/data/definitions/78.html
-
Palo Alto Networks「CVE-2024-3400」(2024-04-12 公表、2026-10-28 取得) https://security.paloaltonetworks.com/CVE-2024-3400
-
CVE「CVE-2024-3400」(2026-10-28 取得) https://www.cve.org/CVERecord?id=CVE-2024-3400
-
MITRE「CWE-352」(2026-10-28 取得) https://cwe.mitre.org/data/definitions/352.html
-
OWASP「A01:2025 Broken Access Control」(2026-10-28 取得) https://top10.owasp.org/2025/A01_2025-Broken_Access_Control/
-
MITRE「CWE-89」(2026-10-28 取得) https://cwe.mitre.org/data/definitions/89.html
-
FBI・CISA「CL0P Ransomware Gang Exploits CVE-2023-34362 MOVEit Vulnerability」(2023-06-07 公表、2026-10-28 取得) https://content.govdelivery.com/accounts/USDHSCISA/bulletins/35ecb08
-
CVE「CVE-2023-34362」(2026-10-28 取得) https://www.cve.org/CVERecord?id=CVE-2023-34362
-
MITRE「CWE-79」(2026-10-28 取得) https://cwe.mitre.org/data/definitions/79.html
-
NVD「CVE-2023-5631」(2026-10-28 取得) https://nvd.nist.gov/vuln/detail/CVE-2023-5631
-
Roundcube「Security update 1.6.4 released」(2023-10-16 公表、2026-10-28 取得) https://roundcube.net/news/2023/10/16/security-update-1.6.4-released
-
OWASP「A05:2025 Injection」(2026-10-28 取得) https://top10.owasp.org/2025/A05_2025-Injection/
関連するページ
- Webセキュリティ用語辞典の索引
- セキュリティヘッダ(CSPなど)
- 脆弱性の番号と評価(CVE、CWE、CVSS)
- OWASP Top 10
- プロンプト駅の「コードの点検」に、プログラムを貼ると、5つの攻撃への備えをAIに点検させる文を作れます。
- Webサイトセキュリティ診断では、外から点検できる範囲で、修正方法を添えて報告します。
下記フォームより直接ご相談・お問い合わせいただけます。
内容を確認のうえ、担当より折り返しご連絡いたします。