ICDロゴ

サニタイジング (sanitizing)

最終更新日: 2006/02/06

 Webサイトの入力処理プログラムなどにおいて、入力データからHTMLタグやJavaScript、SQLなどのプログラム文字列を検出し、置き換えを行うことで無害化する処理のこと。sanitizeとは「無害にする」という意味。

 電子掲示板などの入力フィールドを持つWebページにおいて、HTMLタグやスクリプトなどとして機能する文字列をエスケープした文字列に変換したり、文字列自体を削除したりすることで、タグやスクリプトとして機能しなくする。例えば、<SCRIPT>といったスクリプト・タグを「&lt;SCRIPT&gt;」とすることで、スクリプト・タグとして機能しないように変換する(ブラウザ上の表示自体は、<SCRIPT>となる)。

 特に入力フィールドを持つWebページは、HTMLタグやスクリプトのサニタイジングは必須である。サニタイジングを行うことで、HTML生成時に不正な処理(主にクロスサイト・スクリプティングの攻撃)が行われないようにする。サニタイズを行わないと、SQLインジェクションやOSコマンド・コマンド・インジェクションといった、システムへの攻撃や侵入に利用される可能性がある。

 一般的にサニタイジングは、入力データのチェック時に行うこと、とされている。しかし独立行政法人情報処理推進機構では、サニタイジングのタイミングをHTML生成時のタイミングで行うことを推奨している。これは、データを埋め込むHTML中の文脈に合わせたサニタイジング手法の選択が必要であること、メールなどの各種入力源に対しても、HTML生成時にサニタイジングを実行していればプログラムの変更が不要であることなどを理由として挙げている。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ