手を振るまもるくんゆるふわサイバーセキュリティ
考え中のまもるくん

Webの脆弱性入門|SQLインジェクション・XSSのしくみ

2026-08-16実践

#Web脆弱性#SQLインジェクション#XSS#実践#ネットワーク

Webサービスを作る・使う人が知っておきたい、代表的なWebの脆弱性。攻撃のしくみが分かれば、防ぎ方も見えてきます。

代表的な3つ

🕳️

攻撃

  • SQLインジェクション
  • XSS(クロスサイトスクリプティング)
  • CSRF
VS
💡

ざっくり何をする?

  • 入力欄からDBに不正命令を注入
  • ページに悪意のスクリプトを埋め込む
  • ログイン中の利用者に意図しない操作をさせる

SQLインジェクションのイメージ

ログイン欄に、パスワードのつもりでデータベースへの命令を紛れ込ませる攻撃です。入力をそのままDBに渡すと、「全員のデータを見せろ」といった命令が実行されてしまうことも。

⚠️

根っこは「入力を信用しすぎ」

多くのWeb脆弱性は「利用者の入力をそのまま使ってしまう」ことが原因。ユーザーの入力は常に疑うのが鉄則です。

開発者の基本対策

🧹

入力チェック

想定外の入力を弾く

🔤

エスケープ

特殊文字を無害化

🧰

安全な部品

プレースホルダ・ORM・フレームワーク

自前で頑張るより、実績あるフレームワークの安全機能を使うのが確実。加えて更新で既知の穴をふさぎます。

もう少し詳しく(背景と理論)

Webの脆弱性を体系的に学ぶ出発点が OWASP Top 10 です。世界中の実データを基に、影響の大きいWebアプリの脆弱性カテゴリを数年ごとに更新して公開しています1。2021年版では、アクセス制御の不備(Broken Access Control)が最上位に上がり、インジェクション認証の不備、設定ミスなどが並びます。個々の脆弱性は CWE(Common Weakness Enumeration) で分類され、実際に見つかった脆弱性は CVE として採番・公開されます2。重要なのは、どれも「入力を信用しない」「最小権限」「多層防御」「安全なデフォルト」という共通原則の適用で大半が防げること3。個別の対策を暗記するより、この原則を身につける方が応用が効きます。

つぎに読むなら

Footnotes

  1. OWASP Top 10 は Web アプリの重大な脆弱性カテゴリを実データから選定・公開する事実上の標準リスト。定期的に改訂される。

  2. CWE は脆弱性の「種類」を分類する辞書、CVE は個別に発見された脆弱性の識別子。両者を使い分けてリスクを管理する。

  3. 多くの脆弱性は「入力を信用しない・最小権限・多層防御・安全なデフォルト」の原則で防げる。個別対策の丸暗記より原則の理解が有効。

🔥 この分野の最新トレンドをチェック →

学習コース

14 / 18 本目

学習コースの全体を見る

あわせて読みたい