では、このHTMLタグの無効化(サニタイジング)はどうすればいいかといいますと、皆さんご存知のように、左の表のように置換すれば良いことになります。これは、下記のような文字化け を悪用した攻撃にも効果的です。 例えば、「<」は16進文字コードで「0x3C」です。確かに、「<」で表示される文字(1バイト)なら、Shift_JISでもEUC-JPでもJISでも文字コードは一緒でしょう。しかし、もし「0x3C」を2バイト文字(漢字)の一部であると解釈すればどうでしょうか? Shift_JISやEUC-JPには幸い「0x3C」は現れませんが、JISには現れます。 例えば、「紗」という漢字は、Shift_JISでは0x8ED1ですが、JISでは0x3C53です。0x3C53は、Shift_JISやEUC-JPでは、「1バイト文字が二つある」としか解釈できまず、この場合、「0x3C=<」「0x53=S」