いつものように簡単なメモを。 <文字コードに起因する脆弱性とその対策> 超入門 * ShiftJIS * 1バイト文字と後続バイトの領域が重なる * 5C問題が発生する * EUC-JP * 1バイト文字と後続バイトの領域が重ならない * 5C問題は発生しない * UTF-8 * 1バイト文字、先行バイト、後続バイトの領域はまったく重ならない * 5C問題や「蛍問題」は発生しない デモ * 半端な先行バイトによるXSS * UTF-8非最短形式によるパストラバーサル * 5C問題によるSQLインジェクション * UTF-7によるXSS * EUCJP→EUC-JP * U+00A5によるSQLインジェクション * U+00A5によるXSS * ASP.NET + MS SQL Server + JSON 対策 * htmlspecialcharsの第3引数は必ず指定 * PC・モバイル対応