- ベストアンサー
apache1.3でなぜテキストファイルが表示されてしまうのですか?
個人サーバ(linux+apache1.3)ですが、なぜか、 ブラウザから、http://xxxxxxxxx/fileでアクセスすると テキストファイルfileの内容がそのまま表示されてしま い、これはセキュリティ上では、よくないですね。 テキストファイルを表示させない方法を、アドバイスを よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Filesディレクティブで可能です。 詳しい書き方はネット検索すればいくらでも見つかります。 httpd.confに以下の見本があるので参考にしてください。 .htで始まるファイルは読めない <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> <Files ~ "\.txt"> Order allow,deny Deny from all </Files>
その他の回答 (2)
- togino
- ベストアンサー率75% (97/129)
フリーの CGI なんかによくあるのですが、 そういうのはレンタルサーバの形態でも利用できるように public_html の中だけでシステムが完結するように 作られています。 個人サーバでしたら、public_html にシステムを 閉じ込める必要なないですよね。 /home/namune/public_html/ ← Apache によって公開 されているとすれば、見られたくない設定ファイルなどは /home/namune や /home/namune/config/ のようにフォルダを 作って、Apache の外におくべきなのです。 CGI からは open("/home/namune/config.txt") で 開くことができますが、Apache からはアクセスできません。 --- つまり『設定ファイルは Apache の外に置きましょう』 ってことです。 これが anmochi さんの > そもそもそんなファイルを見える位置に > 置いておく事が問題だと思う ということです。 namune さんがセキュリティを重視されるのであれば パスワードや設定が書かれたファイルは、 Apache からアクセスできるところに置くべきでは ないです。僕も anmochi さんの意見に同感です。 その Movable Type3.01 というソフトは 設定ファイルの保存場所を変更することが可能ですよね。
- anmochi
- ベストアンサー率65% (1332/2045)
そもそもそんなファイルを見える位置に置いておく事が問題だと思うのだが、どうしても置かざるを得ないのだろうか? 例えばWebアプリケーションの設定ファイルなどでその場所に必要な場合は、FilesMatchディレクティブを使用すると、HTTPリクエストをされた時に拒否する事ができる。LinuxのExt3などでファイルアクセス制御を使う方法も考えられるが、Webアプリからも開けなくなる可能性もあるので。 他にもMIMEタイプハンドラで何かできるのかも知れないが、やはりそのようなファイルは個別に明示的にアクセス拒否してあげる方が良いだろう。FilesMatchは.htaccessでも使えるし。
お礼
早速ご返事、どうもありがとうございました。 >そもそもそんなファイルを見える位置に置いておく事が問題だと思うのだが、どうしても置かざるを得ないのだろうか? 例えば、現在ウェブログソフトウェア tDiaryにはイン ストール先には、ChangeLogというテキストファイルが あり、またウェブメ―ラーソフトweibmailerにはcaution,txtなどのテキストファイルがあります。これ らのよく知られているソフトウェアは、一発名前を特定 できてしまいます。 最近、私はMovable Type3.01というウェブログ ソフトウェアをインストールして、*.cgiと同じフォルダ にmt.cfgというシステムの設定ファイル(テキストタ イプ)があって、httpで一発見られてしまいます。 FileMatchでやるとき、ファイルの拡張子を決めてお かなければ、できないような気がします。 例えば、ファイルの内容から判断して、HTML、PERLな どのWEBアプリケーションタグで始めるテキストファイル でないと、開かないような制御がどうすればいいですか。