2008年05月27日 13:54:44
あれから色々と調べていたのですが、どうやら原因らしきものが分かりました。
公開したLZHファイルをバイナリエディタで開いて確認してみると、想定外の現象が起きていました。
「めもりーくりーなー」では、複数のファイルをLZHでまとめて圧縮して公開しています。
今回のLZHでは、その中のファイルの順番と、各ファイルの圧縮のされ具合の関係で、たまたまHTMLファイルと誤認可能なファイルが出来上がっていました。
以下、どういうことか説明します。
「めもりーくりーなー」の圧縮ファイルの中には「help.html」というファイルがあります。ヘルプページに飛ぶためにショートカット的な使い方をする小さなファイルです。
このファイルが圧縮ファイルの先頭に来ていて、かつファイルサイズが小さすぎるためにほとんど圧縮されず、ほぼHTMLファイルの文字列そのままになっていました。
そのためにLZHファイル全体が、ブラウザによってはHTMLファイルとして誤認され、様々な挙動を生み出していたようです。
以下、想定される挙動の一覧です。
・LZHファイルとして正しく認識。DL成功。
・セキュリティー的に問題のあるファイル(拡張子を偽ったファイル?)と解釈されてブロック。
・HTMLファイルと解釈されて実行。変な文字列が大量にブラウザ上に出る。
・HTMLファイルと解釈されて実行。「めもりーくりーなー」のトップページに転送される。
上記のような解釈の違いが発生するために、ブラウザによって挙動が異なっていたのだと思われます。
とりあえず原因が分かったので、VectorにはファイルをZIPで圧縮して差し替え依頼を出しておきました。
ZIPでは、HTMLと解釈されないようなバイナリの状態に圧縮されていましたので。(バイナリエディタで確認しました)
また、暫定的に「めもりーくりーなー」のトップページに「失敗時の仮DL先」というリンクを追加しておきました。
こちらでもDLできるはずです。
ただ、今回の件でLZHファイルとして正しくファイルがDLできなかった人は、ブラウザが古いとかセキュリティの判定が誤っているなどの問題がある可能性があります。
もし古いバージョンのブラウザなどを使っている場合は、セキュリティバージョンアップがあったかどうか確認した方がいいかもしれません。
単に、新しいバージョンのブラウザの判定アルゴリズムの問題ならば、無視して構わないと思いますが。