【さにたいず】
サニタイズ とは?
💡 入力データの「消毒」、危険な文字列を無害化してセキュリティ攻撃を防ぐ
📌 このページのポイント
- HTMLの特殊文字(<>など)をエスケープしてXSSを防ぐ
- SQLの特殊文字をエスケープしてSQLインジェクションを防ぐ
- ホワイトリスト方式(許可する文字だけ残す)とブラックリスト方式がある
- 本質的な対策はサニタイズよりもプリペアドステートメントや適切なライブラリの使用
サニタイズって具体的に何をするの?
SQLインジェクションにも関係があるの?
サニタイズだけしておけば安全?
サニタイズは必要だけど十分ではない。見落としがあると攻撃される。SQLならプリペアドステートメント、HTMLならテンプレートエンジンの自動エスケープを使うのが本質的な対策。「サニタイズを頑張る」より「危険な入力が混入しても安全な設計」が重要。
サニタイズとバリデーションは違うの?
フレームワークを使っていれば自分でサニタイズしなくてもいいの?
まとめ:ざっくりこれだけ覚えればOK!
サニタイズって出てきたら「入力データの危険な文字・コードを無害化してセキュリティ攻撃を防ぐ処理」と思えばOK!
📖 おまけ:英語の意味
「Sanitize」 = 消毒する・清潔にする
💬 医療用語の「消毒・滅菌」から転用。汚染されたデータを「きれいにする」というメタファー