エスケープ処理とは?えすけーぷしょり
エスケープ処理とは、入力された文字のうち、HTMLやSQLにとって特別な意味をもつ記号を、ただの文字として扱われる形に置き換える処理。HTMLに出力するときは「<」を「<」に変えてクロスサイトスクリプティングを防ぎ、SQLでは引用符などを無害化してSQLインジェクションを防ぐ。
最終更新:2026-10-10
この語が出る過去問を解く →背景
Webアプリケーションは利用者の入力を画面やSQL文に埋め込む。そのまま埋め込むと、入力に混ぜた記号がタグや命令として解釈され、攻撃者のスクリプトや問合せが実行されてしまう。
具体例
Webアプリケーションの開発でよく使われる Django(Python製のフレームワーク)は、テンプレートに埋め込んだ値を自動でHTMLエスケープする。掲示板に「<script>」と書き込まれても、画面には文字として表示されるだけで実行されない。
試験での引っ掛け
SQLインジェクションの対策としてはプレースホルダ(値を後から安全に埋め込む仕組み)が第一で、エスケープ処理はそれに並ぶ対策。「HTMLタグの無害化」はクロスサイトスクリプティング、「上位ディレクトリ指定の拒否」はディレクトリトラバーサルの対策で、攻撃と対策の組合せを入れ替えた選択肢が出る。
関連用語
出た過去問
出典:平成29年度 秋期 基本情報技術者試験 午前 問39(IPA)解説で登場
SQLインジェクション攻撃の説明はどれか。
正解:Webアプリケーションに問題があるとき、悪意のある問合せや操作を行う命令文をWebサイトに入力して、データベースのデータを不正に取得したり改ざんしたりする攻撃
要点:SQLインジェクションは入力経由でDBに不正なSQLを実行させる
SQLインジェクションは、入力値の検証やエスケープが不十分なWebアプリケーションに対し、SQL文として解釈される文字列を送り込み、開発者が意図しない問合せや更新をデータベースに実行させる攻撃である。情報の不正取得、改ざん、削除につながる。プレースホルダ(バインド機構)の利用が根本的な対策となる。
出典:平成30年度 春期 基本情報技術者試験 午前 問41(IPA)解説で登場
SQLインジェクション攻撃による被害を防ぐ方法はどれか。
正解:入力された文字が、データベースへの問合せや操作において、特別な意味をもつ文字として解釈されないようにする。
要点:SQLインジェクション対策は入力を値としてのみ扱うこと
SQLインジェクションは、入力値に含まれた引用符などの記号がSQL文の一部として解釈されることで、意図しない問合せが実行される攻撃である。対策は、プレースホルダの利用やエスケープ処理によって、入力文字をあくまで値として扱い特別な意味をもたせないことである。
出典:令和4年度 公開問題 基本情報技術者試験 科目A 問36(IPA)解説で登場
SQLインジェクション攻撃による被害を防ぐ方法はどれか。
正解:入力された文字が、データベースへの問合せや操作において、特別な意味をもつ文字として解釈されないようにする。
要点:SQL文の制御記号として解釈させないのが根本対策
SQLインジェクションは、入力値に含まれる引用符などの記号がSQL文の一部として解釈されてしまうことで起こる。対策は、入力された文字をSQLにとって特別な意味をもつ記号として扱わせないことであり、プレースホルダを使った問合せや適切なエスケープ処理がこれに当たる。HTMLタグの無害化はクロスサイトスクリプティング、上位ディレクトリ指定の拒否はディレクトリトラバーサルへの対策である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。