XSS対策は関数を使って簡略化しよう

はじめに

「>」や「’」などの特殊文字を意味を持たない別の文字に変換(エスケープ)することでXSSを防ぐことができます。今回は、「htmlspecialchars」と関数を使ってXSS対策をしていきます。

htmlspecialcharsでエスケープしよう

第一引数から第三引数まで、下記のように設定することでエスケープできます。

htmlspecialchars (対象の文字列, フラグ, エンコード)

関数化して記述を簡単にする

エスケープしたい場所に何度も「htmlspecialchars」を入力するのは正直メンドウですよね・・・。このお悩みを解決するのが関数化です。

   function h($str){
      echo htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
     }

このように関数化することで、以降のエスケープ処理は下記のように簡単に表記できます。

     echo h($str)

「$str」の部分はPOSTで受け取ったデータを引数にすることもできます。

     $username = h($_POST["username"]);
     $password = h($_POST["password"]);

XSS対策は関数化して簡略化しよう!

htmlspecialcharsを使ってXSS対策する時は、関数化して記述をラクにしてみてはいかがでしょうか?