【さにたいず】
サニタイズ とは?
最終更新:
💡 使う場所に合わせて、データを整える
データを利用目的に合う形へ整える処理。HTMLのサニタイズと出力エスケープ、入力検証、SQLのパラメーター化の違いを、初心者向けに解説します。
📌 このページのポイント
サニタイズは、危険な文字を全部消すこと?
使う目的に合わせてデータを整える処理だよ。たとえば、投稿の太字を残してHTMLとして表示したい場合、許可する要素や属性を選び、それ以外を取り除く。記号を一律に消せば、正しい文章や名前まで壊してしまうんだ。
エスケープとは、何が違う?
入力が正しいか調べるのも、サニタイズ?
それは入力検証だよ。年齢が数値か、指定した範囲か、日付として正しいかなどを調べる。検証を通った文章でも、HTMLへ出すときの扱いは別に考える。入力検証だけでXSSやSQLインジェクションを防げるわけではないんだ。
SQLにも、サニタイズを使う?
HTMLは、どう整えればいい?
もっと詳しく知りたい人へ
一度サニタイズすれば、その後は自由に変更できる?
処理後に別のコードやライブラリがHTMLを変更すると、保護を崩す場合があります。最後に何が画面へ渡るかを確認し、サニタイズ用ライブラリ自体の更新も続けます。
同じエスケープを、すべての場所で使える?
HTML本文、属性、URL、JavaScriptなどで必要な扱いが異なります。どこへデータを入れるかに合う仕組みを選び、危険な出力先へ不用意に入力を埋め込みません。
まとめ:ざっくりこれだけ覚えればOK!
「サニタイズ」って出てきたら「データを使う目的に合わせて、危険な部分などを取り除き整える処理」と思えばだいたいOK!
📖 おまけ:英語の意味
「Sanitize」 = 清潔にする・無害化する
💬 データを整える処理の表現です。何を許可し、何を取り除くかは、HTMLなどの形式と利用目的によって変わります。