htmlentitiesによるXSS対策

  • htmlentitiesとは
    • 適用可能な文字を全て HTML エンティティに変換するPHPの関数
htmlentities(string $string, int $flags, string $encoding, bool $double_encode);
  • パラメータ

    • $string   ー> 入力する文字列
    • $flags ー> フラグ定数(デフォルト:ENT_COMPAT | ENT_HTML401)
    • $encoding ー> 文字を変換するときに使うエンコーディングを定義(デフォルトini_get(“default_charset”))
    • $double_encode ー> FALSEにすると、既存のhtmlエンティティをエンコードしない(デフォルト TRUE)
  • 使用例

$username =htmlentities($_POST["username"], ENT_QUOTES, "UTF-8"); 
  • htmlentitiesによるXSS対策 * htmlentitiesを用いることで、以下のようなスクリプトの危険な文字列をエスケープすることができる.
<script>alert('XSS');</script>