出力時のエスケープ処理とは?しゅつりょくじのえすけーぷしょり
出力時のエスケープ処理とは、受け取ったデータを別の処理系へ渡す直前に、その処理系で構文上の意味を持つ文字を、データとして扱われる表現へ置き換える処理。何が危険かは渡し先の文法で決まるため、HTML本文、HTML属性値、JavaScript、URL、SQL、シェル、LDAPで変換規則がそれぞれ異なる。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
攻撃が成立するのは、データのはずの文字列が、渡された先で命令の一部として解釈される瞬間である。プログラムが文字列を組み立てて他の処理系へ投げる作りである限り、この境目は必ず生じる。境界を越えるところで「ここから先はデータである」と印を付け直すのがエスケープで、クロスサイトスクリプティングやSQLインジェクションの根本対策として問われる。
具体例
同じ氏名でも、HTML本文へ出すなら山括弧とアンパサンドを実体参照へ、リンクのクエリに載せるならパーセント符号化、スクリプト内の文字列に埋めるならさらに別の規則で変換する。テンプレートエンジンの自動エスケープを使う場合も、埋め込む場所の文脈を指定して初めて正しく効く。
試験での引っ掛け
入力時に一括変換して保存する方式は、出力先が複数あるとどれかで必ず崩れ、二重変換で表示が壊れる原因にもなる。保存は生データ、変換は出力の直前が原則。またHTML属性値、イベントハンドラ内、URLを取る属性は本文と規則が異なり、本文向けの変換だけでは回避される。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。