XHTMLとJavaScriptエスケープについて

XSS対策としてのいわゆるJavaScriptエスケープについての拙なる論考を、当日記で以下に記載したことがあります。

http://d.hatena.ne.jp/hoshikuzu/20071011#p1

さて、商用などでウェブアプリケーションを作成する場合には、おそらくHTMLでページを出力し、ピュアなXHTMLでページを出力することはほとんどないかもしれません。ユーザがIEを使っている限り、ピュアなXHTMLとして読んでくれないからです。 対策としてHTTPのrequestを参照してブラウザごとの判断をしてきまじめにコンテンツネゴシエーションしているかもしれませんが、それはさておき。 ところで、IEが進化してピュアなXHTMLの解釈をしてくれる時代が来たとしましょう。ウェブアプリケーション側にも、XHTMLでページを出力する試みをするものが出てくるかもしれません。

そんな時代には、場合によっては、script要素内の文字列リテラルに関するエスケープ方法は、上のリンクで触れたような従来のやりかたでは駄目で、進化する必要が出てくることでしょう。「場合よっては」と書きましたが、script要素を記述するにあたって、CDATAのマーク区間であると明示しないケースが、多数派になりそうだからです。XHTMLの場合中はscript要素の中身は放置すれば#PCDATAなので、文字参照(数値文字参照、文字実体参照)された記述を、スクリプトエンジンに渡す前に展開してしまいます。試したい人は、簡単な静的なXHTMLページを作ってFirefoxOperaで。

現時点では上記の心配はしなくてもよいのですが、いずれ混乱する時代が来そうな気もします。

※とか、佐名木さんの新著を読んで思ったのでした。

※現時点でありえそうなのですが、ページのソース出力にあたってはXHTMLであるが、mimeタイプはtext/html というキメラに関しては、確か大丈夫だったかと思います。だめなケースがあったら是非教えてください。