====== バリデーションする前に全ての変換作業を行う ====== バリデーションを行うデータはバリデーションを行う前に全ての変換作業を行わなければならない。変換作業を後で行うとバリデーションが無意味となる場合が多々ある。 * Unicode文字の正規化(NFKCなど) * 文字エンコーディング変換(SJISからUTF-8など) * 全角/半角変換 * データがURL, BASE64などでエンコードされている場合のデコード処理 PHPの場合、$_GET, $_POST, $_COOKIE, $_FILES配列のデータはデコード後のデータが保存されている。複数回のデコードはセキュリティ問題の原因となる。基本的には複数回デコードは行ってはならない。 ===== 非適合コード例 ===== バリデーションを行ってから変換を行うと、バリデーションの意味が無くなる場合多い。mb_convert_kana($str, 'knr')は全角文字を半角文字に変換する。strip_tags()は全角文字のタグを取り除かないので、mb_convert_kana()の変換により