KENT-WEB サポートコーナー 過去ログ [ 0032 ]


記事No: 4528
投稿日: 2008/09/22(Mon) 09:50:33
タイトルWebProtect から、zipファイルをダウンロードさせ
ID情報: tokitami
投稿者: ときたみ
URLhttp://tokitami.dip.jp/cgi-bin/test/protect.cgi

はじめまして。ときたみと申します。
自宅サーバでOS FreeBSD7.0-RELEASE;WebServer apache2.2.8;perl5.8.8
で、運用しています。
クライアントはFirefox3.0.1です。

友人にファイルを送信するのに、結構なサイズがあるのでWebサーバ経由でダウンロードさせようとしています。
そこで、WebProtectを使用して、ユーザ認証をかけようと思っています。
<<現在の構成>>
パターン1の構成にしています。
/user/local/apache2/
      |
      +-- ***/****/ secret.html ...(隠しファイルトップページ)
      |       protect.zip ...(隠しファイル第1ページ)
      |       .htpasswd [606]
      |       .axslog [606]
      |       .admlog [606]
      |       .member [606]
      |
      +-- cgi-bin / (公開ディレクトリ)
         |
         +-- test / protect.cgi [705]
            |  admin.cgi [705]
            |  init.cgi [604]
            |  jcode.pl [604]
            |  index.html
            |
            +-- lock [707] /


という環境です。
※この環境はテスト用なので、今回の問題が解決次第削除します。

で、過去ログ
http://www.kent-web.com/support/old/67/0036.html
http://www.kent-web.com/support/old/64/0352.html
を参照して、init.cgiとsecret.htmlを修正しました。
※各ファイルはhttp://tokitami.dip.jp/protectにコピーしてあります。

一応、ファイル配置やAdminの動作、protect.cgiの動作は確認できています。

ただ、secret.htmlに貼ってあるリンク先をクリックすると、protect.cgi という名前の 0byteファイルがダウンロードされます。過去ログではMacだとprotect.cgiという名前になるということですが、MacOS XはFreeBSDがベースになっているので、FreeBSDの動作としてファイル名が固定されているのかもしれません。
なので、名前の方は気にしないことにします。
しかし、ファイルサイズが0なのが原因不明です。

(見落としでなければ)過去ログには同様の現象はなさそうでしたので、今回質問したいと思います。

Q:ダウンロードしたファイルが0byteになるのはなぜか?

どなたか、知恵をお貸し頂けると助かります。
よろしくお願いします。
また、足りない情報がありましたらご指摘ください。

<<追加情報>>
ユーザ名・パスワードはどちらもtestuserです。
Adminのパスワードは初期値です。
※このデータ一式は、問題解決後削除します。

<<再追加>>
URL欄のアドレスが間違っておりました。
修正しましたので、ご確認してくれる方をお待ちしております。


記事No: 4535
投稿日: 2008/09/23(Tue) 17:44:46
タイトルRe: WebProtect から、zipファイルをダウンロードさせ
ID情報: tokitami
投稿者: ときたみ
URLhttp://tokitami.dip.jp/cgi-bin/test/protect.cgi

動作確認を行ったところ、zipはおろか、html以外のjpeg,gif,excel,pdfの各ファイルも0バイトになることを確認しました。
ということは、zipではないダウンロードファイルについても問題があるということで、設定ファイルに問題があるような気がします。
私の方も追跡調査を行いますが、もし、ヒントがあれば教えて頂きたいと思います。


記事No: 4538
投稿日: 2008/09/24(Wed) 12:04:31
タイトルRe^2: WebProtect から、zipファイルをダウンロードさせ
ID情報: pachira
投稿者: pachira
URLhttp://www5e.biglobe.ne.jp/~pachira/

> 動作確認を行ったところ、zipはおろか、html以外のjpeg,gif,excel,pdfの各ファイルも0バイトになることを確認しました。
> ということは、zipではないダウンロードファイルについても問題があるということで、設定ファイルに問題があるような気がします。
> 私の方も追跡調査を行いますが、もし、ヒントがあれば教えて頂きたいと思います。

$secret[1] = "01.zip";
$secret[2] = "02.html";
$secret[3] = "03.jpg";
$secret[4] = "04.gif";
$secret[5] = "05.xls";
$secret[6] = "06.pdf";

恐らく、こう↑になっていますよね?
バイナリファイルは、通常$secretに指定しませんよ。

これ↓も疑わしいですね。
<P>[<a href="http://tokitami.dip.jp/cgi-bin/test/protect.cgi?zip=1">01.zip</a>]
<P>[<a href="http://tokitami.dip.jp/cgi-bin/test/protect.cgi?page=2">02.html</a>]
<P>[<a href="http://tokitami.dip.jp/cgi-bin/test/protect.cgi?jpeg=3">03.jpg</a>]
<P>[<a href="http://tokitami.dip.jp/cgi-bin/test/protect.cgi?gif=4">04.gif</a>]
<P>[<a href="http://tokitami.dip.jp/cgi-bin/test/protect.cgi?excel=5">05.xls</a>]
<P>[<a href="http://tokitami.dip.jp/cgi-bin/test/protect.cgi?pdf=6">06.pdf</a>]

最後の数字は引数ですか?通常はファイル名を指定しますよ?
例えば、01.zipと言うファイルなら、
<P>[<a href="http://tokitami.dip.jp/cgi-bin/test/protect.cgi?zip=01">01.zip</a>]
です。

バイナリファイルの扱い方が間違っています。
解説ページの読み直しを。
http://www.kent-web.com/pwd/protect.html


記事No: 4539
投稿日: 2008/09/24(Wed) 20:20:06
タイトルRe^3: WebProtect から、zipファイルをダウンロードさせ
ID情報: tokitami
投稿者: ときたみ
URLhttp://tokitami.dip.jp/cgi-bin/test/protect.cgi

pachiraさん、コメントありがとうございます。

で、言われたとおり解説ページを確認してみました。


解説ページによれば
「この ?page=1 という引数が、init.cgiで設定する $secret[1] = 'file1.html'; で指定するファイルに対応します。」

とあるので、"?page="の後にある数字は"$secret[x]"のxに該当する物だと判断しました。
ファイル名を指すのであれば、"?page=file1"になりますよね?
・・・と思っていたのですが、"?page="の後に対象ファイルのサフィックスを除いた部分を指定してやると確かにダウンロードに成功します。(ファイル名がprotect.cgiなのは変化なし)
 ということは解説ページの方が間違っているということですね。


バイナリファイル(の画像ファイル)については、完全に私の勘違いでした。
よく考えたら、画像の場合はダウンロードさせるんじゃなくて、絵そのものが表示できたらそれでいいんでした。
まぁ、画像は今回、私は扱わないのでどちらでもいいんですが。


> バイナリファイルは、通常$secretに指定しませんよ。

これについては、解説ページでは特に触れられていませんが、動作確認を行ったところ、確かにinit.cgiへの記述は不要でした。
記述してあっても動作はするので、どっちでもいいのかもしれませんが、解説ページで明記してあった方がユーザにはわかりやすいですね。

以上をふまえて、今回の確認結果の生成物を、
http://tokitami.dip.jp/protect/以下に置いておきます。
また、上のURLについても、今月中はのこしておくつもりです。
それ以降は消してしまおうと思っていますが、問題ないですよね?
過去ログをみる限り、ここでつまずいた私がレアケースなようですし、別に残しておく必要もないかな、と。

ただ、
1)「〜/protect.cgi?pdf=xxx">yyy.pdf</a>」のxxx部分はinit.cgiの「$secret[z]="xxx.pdf"」に対応させる必要がある
2)バイナリファイルはinit.cgiの$secretに記述する必要はない
という2点については、修正依頼をwebmasterに出したいと思います。

どうも、ありがとうございました。これで、zipファイルの配布が可能になりました。


[検索ページ]