サニタイズとは?

おはようございます。

WordPressで最近、esc_url();というコードを書く機会がありました。サニタイズについて調べてみたのでまとめました。

 

サニタイズとは?

WordPress(ソフトウェア)に入出力するデータを無害化すること。(多くの場合テキスト化)具体的に言うと、jsやhtmlの特殊文字(<br>)などが入出力された時にテキスト化する。コードとして実行されないようにする事です。XSS(クロスサイトスクリプティング)攻撃のセキュリティ対策としても使われます。

 

手法

二種類に分類できるかと思います。

  • バリデーション
    • 入力されたデータを条件に沿ってチェックし、不適合であれば入力を拒否する。(数字、全角、半角や、文字数制限なども)
  • エスケープ
    • 入・出力データ内の特殊文字を無害化する手法。

 

WordPressにおける具体例

  • バリデーション
    • コンタクトフォームなどの入力チェック。
  • エスケープ
    • esc_url();など。WordPressでは対象となるデータによってエスケープ関数が異なる。
    • 1例:esc_urlは、urlを無害化する。

 

参考資料

その他のエスケープ関数は下記を参考にして下さい。

WordPress Codex日本語版|データ検証

 

*バリデーションがサニタイズに含まれるのかは分からないですが、データを無害化するという意味では含まれるのでは?と理解しています。ツッコミ所があれば教えて頂けると嬉しいです。