基本情報暗記無料で始める

Webアプリケーションの脆弱性とは?うぇぶあぷりけーしょんのぜいじゃくせい

Webアプリケーションの脆弱性とは、Webアプリケーション(ネット通販・予約・掲示板など、ブラウザから使うシステム)の作りの不備のうち、攻撃者に悪用されると情報の漏えいや改ざん、なりすましにつながるもの。代表的な種類は、入力欄にSQL(データベースへの命令の言語)の命令を紛れ込ませてデータベースを不正に操作されるSQLインジェクション、利用者のブラウザで攻撃者のスクリプト(ブラウザが実行する小さなプログラム)を動かされるクロスサイトスクリプティング(XSS)、ログイン中の利用者に本人の意図しない操作(書き込み・設定変更など)を送らせるクロスサイトリクエストフォージェリ(CSRF)、サーバのOSへの命令を実行されるOSコマンドインジェクション、「../」のような指定で公開していないファイルを読まれるディレクトリトラバーサル、セッションID(ログイン中であることを識別する番号)を盗まれてなりすまされるセッションハイジャック。IPA(情報処理推進機構)は「安全なウェブサイトの作り方」でこれらの対策を整理している。根本の対策はプログラムを直すこと(SQLはプレースホルダ(SQL文の形を先に決め、値を後から安全に埋め込む仕組み)で組み立てる、画面に出す文字はエスケープ(「<」のように特別な意味を持つ記号を、ただの文字として表示される形に置き換える処理)する等)で、WAF(Web Application Firewall:通信の中身を調べて攻撃を止める装置)は、直すまでの間や直しきれない部分を補う守りという位置づけになる。

最終更新:2026-10-10

試験情報

基本情報技術者試験の過去問では1回出題されています。

基本情報技術者試験の頻出用語/テクノロジ系

別名:Webアプリケーション脆弱性、ウェブアプリケーションの脆弱性

この語が出る過去問を解く →

背景

Webサイトが文書を見せるだけだった頃は、利用者の入力をほとんど受け取らなかった。ネット通販や会員サイトのように、利用者の入力を受け取ってデータベースを検索・更新するWebアプリケーションが広がると、「入力された文字列を、そのまま命令や画面の一部として使う」作りが攻撃の入口になった。そこで、攻撃の手口ごとに脆弱性に名前を付けて分類し、開発者が作り込みを避けられるように整理されてきた。

具体例

大学図書館の蔵書検索ページが、検索欄の文字をそのままつなげて「SELECT * FROM 蔵書 WHERE 書名 = '(入力)'」というSQL文を組み立てていたとする。ここに「' OR '1'='1」と入力されると、条件が常に成り立つ形になり、全件が返ってしまう(SQLインジェクション)。同じページが「(検索語)の検索結果」と検索語をそのまま画面に表示していると、検索語にスクリプトを仕込んだURLを利用者に踏ませるだけで、その利用者のブラウザでスクリプトが動く(クロスサイトスクリプティング)。前者はプレースホルダ(SQL文の形を先に決め、値を後から安全に埋め込む仕組み)、後者は「<」を「&lt;」に置き換えるようなエスケープ処理で、プログラムの側を直して防ぐ。

試験での引っ掛け

XSSとCSRFの取り違えが定番。XSSは「攻撃者のスクリプトが利用者のブラウザで動く」もので、Cookie(ブラウザに保存されるログイン情報など)の盗み取りに使われる。CSRFは「ログイン中の利用者に、本人が意図しないリクエストをサイトへ送らせる」もの。また、通信をHTTPSで暗号化しても、SQLインジェクションやXSSは防げない(暗号化で守られるのは通信の途中であり、攻撃の文字列も暗号化されて正しく届く)。WAFも暗号化された通信の中身は読めないので、過去問のように「暗号を解く機能が無いWAF」は、暗号が解かれた後の通信が流れる位置(HTTPSの暗号を解く機器とWebサーバの間など)に置く必要がある。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:テクノロジ系
  • XSSとCSRFの取り違えが定番。