• 締切済み

Apacheで・・・・少し特殊なことを

はじめまして。 Apache最新版をLinuxで使ってます。 WEBサイトを構築してますが、一般アクセス者に 作曲ファイル(MIDIなど)やイラストをUPしてもらい、 それを自由にDL出来るサイトを作ってます。 しかし、中にはCGIをUPしたり、HTMLファイルをUPして、 勝手にHPを作ってしまうような人が見られるようになりました。 CGIはApacheのhttpd.confで該当区域は無効にしています。 しかし、HTMLファイルをアップする人には困っています。 どなた様か、HTMLファイルも開いたらソースが表示されるとか、 DL画面になるなどの方法を教えていただけませんか? 「サーバー詳細」 わけありで、UPプログラムには、ファイル種類限定など出来ません。 DL区域はCGIも.htaccessも無効になっています。 バーチャルホストではありません。 普通にhttp://www.XXXX.XX/DL/ のような普通のサイトです。

みんなの回答

  • entree
  • ベストアンサー率55% (405/735)
回答No.3

SetEnvIf Referer "^$" ok <Directory "/path/to/directory"> Order Deny,Allow Deny from all Allow from env=ok </Directory> これで直リンク以外の全てのアクセスが拒否されると思います。 リンクが有効でないホームページなんて意味をなさないですし、これならIEでも効果があるので、かなりの成果が期待できると思います。

  • tailkuppa
  • ベストアンサー率53% (52/98)
回答No.2

> CGIはApacheのhttpd.confで該当区域は無効にしています これを行っている場所で、 AddType text/plain .html AddType text/plain .htm AddType text/plain .HTM AddType text/plain .HTML みたいにしてみたらどうでしょうか? ブラウザに渡す属性が text/plain になるので、テキスト表示になると思います。 Mozilla ではうまく行くことを確認しました。 が、IE だと無理なんですね...。 ファイルの中身を読み込んで勝手にHTML だと判断してしまうみたい。 大きなお世話です。 拡張子をtxt や、bin に変えても駄目ですね。 思い余って、 .doc とかにしたら、さすがにワードで開いてくれました。 が、これでは解決にはなりませんよね? テキストファイルであることが判断できたら、lha か zip で圧縮してしまう、とか。 サーバの側から対応できそうなことといったら、このくらいしか思いつきません。

  • yuji
  • ベストアンサー率37% (64/169)
回答No.1

直接的な回答ではないですが、私ならこうしますという回答を。 UPLOADはFTPで行っているのですよね。 それをやめて、Webからアップロードする仕組みを 作って、そのときに許可している形式以外のものを エラーにするようにします。 こうすれば許可しているもの以外が置かれることは ありません。 (ただし作るのは、ちと大変だと思います。)

net-et
質問者

補足

説明不足のようでした。FTPからではなく、WEBからです。 掲示板のファイルUP機能を改造して、作りました。 実は、形式によるエラーの出し方が勉強不足でわかりません。 そこで、 ファイルの種類をサーバー側で特定のフォルダー内だけ変えようと思ったのです。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう