今日は結婚から 777 日後ということで、ふたりで手作り餃子パーティーをしてお祝いしました。
早い話が「なんでも添付できて、それをそのままウェブブラウザで表示できるとやばい」というわけなのですが、その回避方法として、
という二つの方法があります。
で、前者はおそらくあらゆるバージョンの Internet Explorer で (少なくともデフォルトでは) 無理なので、ブラウザのシェアから言っても後者の対応をとらざるをえず、実際 Hiki ではそのように対応しました。
ところが、後者が無理なブラウザも少なからず存在していますが、そのためには前者の対応が必要になります。
ここで、テスト用のスクリプトを用意しましたので、調査にご協力くださると幸いです。
リンクをたどってダウンロードになるとそのテストは○で、ブラウザ上に test と表示されてしまうとそのテストは×ということになります。
などの情報をツッコミでお知らせください。
どうぞよろしくお願いします。
追記 すでに確認された両方ダメなブラウザ
かずひこさんのところで、テスト用のスクリプトを用意し調査をされていますので、ご協力を。
Content-disposition と Content-type に関して、いろいろと解析した結果のメモ。 Mozilla は、Content-disposition: attachment のファイルをちゃんと保存するし、 Content-type を尊重する。よって、画像は inline のまま、そのほかのデータは attachment にすれば多分OK。..
ファイル添付の脆弱性に関するブラウザの調査 というのをやってるのを発見。 うは、古めのブラウザは散々ですな。 非常に参考になるので、ついでにテストに参加してみました。...
○○○ Firefox 1.0.4 Linux i686
××× Mac OS X 版 Internet Explorer 5.2.3 (5815.1)
○○× IE 6.0.2800.1106 Windows2000
○○× Safari 1.3 (v312) Mac OS X 10.3.9
×○○ Konqueror 3.4.0 Linux i686
×○○ w3m/0.5.1+cvs-1.935
○○○ 風博士 0.2.6
○○○ Camino 2005043008
○○× Safari2.0 (v412) Mac OS X 10.4.1
○○× Opera 8.0 (7561) Windows 2000
×○○ iCab 2.9.8 Mac OS X 10.3.9
×○○ Netscape 4.8 Mac OS Classic
××× Internet Explorer 5.1.7 (5815) Mac OS Classic
○○× Lunascape Lite 2.0.0 Windows XP SP2
×○○ Lynx Version 2.8.5rel.1 (04 Feb 2004) FreeBSD 5.4-STABLE
○○○ Firefox 1.0.4 Windows2000
○○○ Mozilla 1.7.7 FreeBSD 5.4-STABLE
×○○ Epiphany 1.6.3 FreeBSD 5.4-STABLE
○○× Opera7.54 WinXP
氷魚さんが8.0ですでに確認されていますが、ご参考までに。
○○○ Netscape8 Windows XP SP2 (Firefox 1.0.4ベースなので当たり前ですが)
○○○ Mozilla 1.7.9 Windows XP SP2 (当たり前ですが...)
○○× IE 6.0.2900.2180.xpsp_sp2_gdr.050301-1519 Windows XP SP2
詳細に調べた訳ではありませんが、Content-Type: は付ける
Content-Disposition: attachment
とする、が無難な様な気がしているので普段はこうしています。HTTP用としてはRFCで決まっていない事が問題...それとも勝手に実装しているブラウザが問題か...
Mozilla 1.7.9 -> Mozilla 1.7.8
Netscape8は8.0.1です。
○○△ IE 6.0.2900.2180.xpsp_sp2_gdr.050301-1519 Windows XP SP2 「拡張子ではなく、内容によってファイルを開くこと」を「無効にする」場合
△:HTMLソースが表示された
×○○ dillo-0.8.4-r1 Gentoo
××○ Opera6.06(Build 1145, Windows XP)
×○○ Netscape Commnuicator 4.78 Windows2000
>yohgaki様
【HTTP用としてはRFCで決まっていない事】
というのは、RFC1806では(メール用で)HTTP用には考えられていないということをおっしゃっていらいますか?RFC2616ではHTTP【でも】使えるように再定義されています。メールに比べれば限定されていますし、ブラウザが実装するとも限りませんけれども。RFC2616の範囲で考えますと、
content-type に application/octet-stream
Content-Disposition: attachment; filename="fname.ext"
にて、「UAは応答を表示すべきではなく、直接「名前を付けて保存」ダイアログを表示されるものと期待することが妥当なようです。
○○× Opera 8.0 (build 1092, Linux/Fedora Core1)
○○○ Sylera2.1.26 Windows2000SP4
○○× Sylera2.1.26(IEビュー) Windows2000SP4+IE6.0.2800.1106
○○× IE 5.00.3700.100(5.01) Windows 2000 Professional Service Pack 4
××× Safari 1.0.3 (v85.8.1) Mac OS X 10.2.8
×○○ Opera AirEdge AH-K3001V (ケータイ・フルスクリーンモード共通) # PC用Operaと挙動が違う?
××× IE4.01SP2(Win98)
○○○ Netscape 7.1 Mozilla/5.0 (Windows; U; Windows NT 5.0; ja-JP; rv:1.4) Gecko/20030624
×○○ Netscape Communicator 4.79 (WinXP SP2)
○○○: Firefox 1.0.4 (Debian sid)
×○○: w3m/0.5.1 (Debian sid)
なんとなく試してしまったので、意味無いけど、一応報告。
×××: i-mode P900i
○○○:Firefox 1.0.4 (Mac OS X 10.3.9)
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; ja-JPM; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
Opera8.0 ビルト7561 onWindowsXPSP2
○○X
こんなんでも試してみました。
普段使わないけどね。
×××:RealPlayer 10.0.0(325):Mac OS X 用 RealPlayer 10
○○○ Gecko/20051111 Firefox/1.5