プロフィール

あず/asbntby

Author:あず/asbntby
ネットゲーム「人狼」プレイヤー(最近は頻度低下中)。
人狼クローン「人狼物語」開発中。
あず開発室
自己紹介(?)

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

あずぶろぐ
とりあえずだらだらと。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

IEを窓から投げ捨てたい今日この頃
人狼物語テストサーバ@あず開発室で、実験的に数値文字参照を含む発言を許可するようにしてみたんですが、環境によって文字化けするという報告が。しかもプレビューでは表示されるとか。
……ナンデスカ、ソレ。

余りにも不可解なので、調べてみた。


で、簡単にこんな感じのサンプルを書いたんですよ。

(前略)

<form action="http://testserver/cgi-bin/test.cgi" method="post">
<p>
<input type="text" name="inline" value="&#9824;&#9825;ab">
<textarea name="tarea">&#9824;&#9825;ab</textarea>
<input type="hidden" name="test" value="&#9824;&#9825;ab">
<input type="submit" value="submit">
</p>
</form>

(後略)

http://testserver/cgi-bin/test.cgi には受け取ったデータをそのまんま表示するCGIスクリプトを置いて、submitボタンをぽちっと押す。

Firefox だと↓こう。

inline=%26%239824%3B%26%239825%3Bab&tarea=%26%239824%3B%26%239825%3Bab&test=%26%239824%3B%26%239825%3Bab

で、IEだと↓こう。

inline=%A2%BC%A2%BDab&tarea=%A2%BC%A2%BDab&test=%A2%BC%A2%BDab

( д)  ゜゜

なんかわけのわからん変換してるんですが。('A`)


余りにも訳がわからないので色々検索してみたら、/. に目を惹くページが。

UTF-7エンコードされたタグ文字列によるXSS脆弱性に注意

……なんか怪しいニオイ。

さっきのサンプルHTMLに↓を追加してやってみた(手抜きで入れてなかった)。
<meta http-equiv="content-type" content="text/html; charset=Shift-JIS">

inline=%26%239824%3B%26%239825%3Bab&tarea=%26%239824%3B%26%239825%3Bab&test=%26%239824%3B%26%239825%3Bab

……。


さっそくテストサーバの設定をいじってみた。

動いた。


そういう事か、この野郎。('A`)


誤解を招きそうなので解説。

えーと、人狼物語は Content-Type をちゃんと出力しています。
標準設定だと HTTP と HTML の両方に出力するようになっています。
テストサーバ@あず開発室では HTTP にのみ出力しています。

※時々知らない人がいるようなんですが、meta要素の http-equiv属性というのは HTTP 出力を HTML上に埋め込むためのもので、本来は HTTPレベルで出力するものです。つまり、Content-Type は HTTP に出力すれば本当はHTMLに埋め込まなくても良いのです。

ところが、今回の試験結果を見る限り、どうやら IE6 は HTMLに Content-Type を埋め込んでいない場合(HTTP の Content-Type は無視)、form要素の出力値をなんかわけわからん変換をして出力する模様。

/. の記事で一瞬「UTF-7に変換してる?」とか思ったけど、冷静に考えてみると UTF-7 って7bit伝送みたいだから %A2 とか %BC とかでないっぽい? UTF-7 の事よく知らないのでアレですが。ていうかもうこれ以上調べる気が起きないんですが。ていうか普通に UTF-8 辺りっすか?

えーととにかく何が言いたいかというと、IE捨てたいなあ(爽)って話で。

特定のブラウザ向けのパッチとかなるべく当てたくないんですよ。後々面倒くさくなるのが分かり切ってるので。
てか、Firefox にべったり依存したコード書いてるとかならともかく、ほとんど依存しないように書いてるのに盛大にこけるとかどうすれば。

ああ……窓から IE を投げ捨てたい。
スポンサーサイト
この記事に対するコメント

この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://asbntby.blog56.fc2.com/tb.php/55-0896e59f
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。