安全なウェブサイトの作り方 改定第3版

hasegawayosuke2008-03-11

IPAによる「安全なウェブサイトの作り方」の改定第3版が出ていました。あちこちにUTF-7によるXSSネタが出てきているんですが、いくつか気になる点がありました。
まずはP.25から。

HTTP のレスポンスヘッダのContent-Type フィールドには、「Content-Type:text/html; charset=us-ascii」のように、文字コード(charset)を指定することができますが、この指定を省略した場合…

安全なウェブサイトの作り方 改定第3版 (P.25)より。
charset をきちんとつけようという例で US-ASCII を示すのはあまり頂けないなと思います。Internet Explorer においては、US-ASCIIの場合は最上位ビットを無視するという問題が2006年から放置されてますので、US-ASCIIを指定してもそれはそれでWebアプリケーション開発者の意図しない問題が発生しそうです。


つぎにP.26。

本来対象とする文字がShift-JISやEUC_JP、UTF-8 などの文字コードで扱われているため…

安全なウェブサイトの作り方 改定第3版 (P.26)より。
それぞれ「Shift-JIS」「EUC_JP」ではなく「Shift_JIS」「EUC-JP」です。「Shift-JIS」はIEでもなんとなく認識できてるっぽいですけど、「EUC_JP」はIEでは認識できないcharset名ですので、

Content-Type: text/html; charset=EUC_JP

みたいな指定をしてしまうと、UTF-7と認識されてXSSする可能性もありますので、きちんと「EUC-JP」と書かないといけません。

「きちんと charset をつけよう」という主旨の説明の箇所なので、それこそきちんと書いて欲しかったです。

(2008/03/11追記: 本日付けで上記は訂正されたようです。伊藤さん、情報ありがとうございました。)