Webアプリケーションの脆弱性(基礎の分類)とは?うぇぶあぷりけーしょんのぜいじゃくせい
Webアプリケーションの脆弱性(基礎の分類)とは、利用者から受け取った文字列の扱いや出力時の処理の不備を突かれる、Webアプリ特有の弱点の分類。SQLインジェクション、クロスサイトスクリプティング、クロスサイトリクエストフォージェリ、ディレクトリトラバーサル、OSコマンドインジェクションなどがあり、被害の当たる先と根本的な直し方が種類ごとに違う。
最終更新:2026-10-06
この語が出る過去問を解く →背景
Webアプリは、受け取った文字列をSQL文やHTML、OSコマンドといった別の言語の一部として組み立て直している。データと命令を分けずに文字列としてつなぐ設計が残る限り、境界をまたぐ入力で処理系の意味を書き換えられてしまう。分類が必要なのは、混入する先の処理系ごとに正しい直し方が違い、まとめて一つの対策では塞げないため。
具体例
IPAの『安全なウェブサイトの作り方』は、分類ごとに根本的解決と保険的対策を分けて示している。SQLインジェクションならプレースホルダ(バインド機構)を使ったSQL文の組み立て、クロスサイトスクリプティングなら出力時のエスケープが根本的解決にあたる。
試験での引っ掛け
害の当たる先を取り違えやすい。SQLインジェクションで狙われるのはサーバ側のデータベースだが、クロスサイトスクリプティングで被害を受けるのはそのページを見た利用者のブラウザであり、「自社のデータが壊れないから軽微」は誤り。入力値の検査やWAFはいずれも保険的対策で、プレースホルダやエスケープの代わりにはならない。
関連用語
出た過去問
出典:平成29年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問12(IPA)
Webアプリケーションの脆弱性を悪用する攻撃手法のうち,Webページ上で入力した文字列がPerlのsystem関数やPHPのexec関数などに渡されることを利用…
正解:OSコマンドインジェクション
要点:入力がシェル経由で実行されるのがOSコマンド注入
外部から受け取った文字列を、シェルを介してコマンドを実行する関数へそのまま渡すと、区切り文字を混ぜることで任意のコマンドを実行されます。これがOSコマンドインジェクションです。対策はシェルを経由する関数を使わない、あるいは値を厳密に検証・エスケープすることです。
出典:平成30年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問13(IPA)
Webアプリケーションの脆弱性を悪用する攻撃手法のうち,Webページ上で入力した文字列がPerlのsystem関数やPHPのexec関数などに渡されることを利用…
正解:OSコマンドインジェクション
要点:入力がシェルで実行されるのがOSコマンド注入
受け取った文字列を検証せずにシェル経由でコマンドを実行する関数へ渡すと、区切り文字を混ぜることで任意のコマンドを実行されます。これがOSコマンドインジェクションです。シェルを使う関数を避ける、値を厳密に検証するといった対策が必要です。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。