■サニタイジング(sanitizing)
入力データからHTMLタグやJavaScript、SQLなどの文字を検出し、置き換えを行うことで無害化する処理のこと。sanitizeとは、「無害にする」という意味。
掲示板などの入力フィールドを持つWebページにおいて、HTMLタグやスクリプトなどとして機能する文字列をエスケープした文字列に変換したり、文字列自体を削除したりすることで、タグやスクリプトとして機能しなくする。例えば、<SCRIPT>といったスクリプト・タグを「<SCRIPT>」とすることで、スクリプト・タグとして機能しないように変換する(ブラウザ上の表示自体は、<SCRIPT>となる)。
特に入力フィールドを持つWebページは、HTMLタグやスクリプトのサニタイジングは必須である。サニタイジングを行うことで、HTML生成時に不正な処理(主にクロスサイト・スクリプティングの攻撃)が行われないようにする。一般的にサニタイジングは、入力データのチェック時に行うこと、とされている。しかし独立行政法人情報処理推進機構では、サニタイジングのタイミングをHTML生成時のタイミングで行うことを推奨している。これは、データを埋め込むHTML中の文脈に合わせたサニタイジング手法の選択が必要であること、メールなどの各種入力源に対しても、HTML生成時にサニタイジングを実行していればプログラムの変更が不要であることなどを理由として挙げている。
|