• ベストアンサー

apache1.3でなぜテキストファイルが表示されてしまうのですか?

 個人サーバ(linux+apache1.3)ですが、なぜか、 ブラウザから、http://xxxxxxxxx/fileでアクセスすると テキストファイルfileの内容がそのまま表示されてしま い、これはセキュリティ上では、よくないですね。  テキストファイルを表示させない方法を、アドバイスを よろしくお願いします。

  • namune
  • お礼率55% (149/268)

質問者が選んだベストアンサー

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

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)
回答No.3

フリーの 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)
回答No.1

 そもそもそんなファイルを見える位置に置いておく事が問題だと思うのだが、どうしても置かざるを得ないのだろうか? 例えばWebアプリケーションの設定ファイルなどでその場所に必要な場合は、FilesMatchディレクティブを使用すると、HTTPリクエストをされた時に拒否する事ができる。LinuxのExt3などでファイルアクセス制御を使う方法も考えられるが、Webアプリからも開けなくなる可能性もあるので。  他にもMIMEタイプハンドラで何かできるのかも知れないが、やはりそのようなファイルは個別に明示的にアクセス拒否してあげる方が良いだろう。FilesMatchは.htaccessでも使えるし。

namune
質問者

お礼

 早速ご返事、どうもありがとうございました。 >そもそもそんなファイルを見える位置に置いておく事が問題だと思うのだが、どうしても置かざるを得ないのだろうか?  例えば、現在ウェブログソフトウェア tDiaryにはイン ストール先には、ChangeLogというテキストファイルが あり、またウェブメ―ラーソフトweibmailerにはcaution,txtなどのテキストファイルがあります。これ らのよく知られているソフトウェアは、一発名前を特定 できてしまいます。  最近、私はMovable Type3.01というウェブログ ソフトウェアをインストールして、*.cgiと同じフォルダ にmt.cfgというシステムの設定ファイル(テキストタ イプ)があって、httpで一発見られてしまいます。  FileMatchでやるとき、ファイルの拡張子を決めてお かなければ、できないような気がします。  例えば、ファイルの内容から判断して、HTML、PERLな どのWEBアプリケーションタグで始めるテキストファイル でないと、開かないような制御がどうすればいいですか。

関連するQ&A

  • apacheについて

    先日から、Linuxの勉強を始めようとVmwarePlayer上でcentOS5.4を動作させています。 そこで、Webサーバとしてapacheをインストールしました。ホストOSのWindowsからブラウザを立ち上げて、テストページが表示されることが確認できました。 そこで、新たにhtmlファイルを作成し、/var/html以下に配置し、ブラウザで表示されるか確認したところ表示されません。アクセス権に問題があるようです。調べたところ、最低でも505の権限が必要との情報があったため、/var/htmlのアクセス権限を上記のように設定してもだめでした。 自分で作成したhtmlファイルを表示させるにはどうしたらよいでしょうか。 どなたかアドバイスお願い致します。

  • 【Apacheの設定?】 PNGファイルがブラウザで表示されません。

    こんにちは。 下記の構成でWebサーバを構築しております。  ・RedHat Linux 8.0  ・Apache(上記OSに標準搭載されているバージョン) この構成で、httpd.confは必要最低限の変更のみ行って おります。 テスト用に単純なHTMLを用意し、その中に画像(PNG)を 10枚ほど貼り付け、ブラウザで表示させたところ、9枚 くらいは画像(PNG)ファイルを読み込むのですが、表示 されない画像もあり、完全にHTMLの記述どうり画像が表示 されません。 他のレンタルサーバに全く同じものをアップし、テスト してみたところ、問題なくすべて表示されます。 Apacheの設定やOS自身の設定で何か必要なものがあるので しょうか? 教えてください。 何卒よろしくお願い致します。

  • Apache

    PCにWindows用のApacheをインストールしてあり、ブラウザからはhttp://localhost/でアクセスできるように設定してありました。ところが、ウィルスセキュリティをインストールしたら、取り消されたアクションというエラーが表示されてアクセスできなくなってしまいました。解決するための設定方法を教えてください。

  • apache2.2で画像が表示されません。

    webサーバーをたて、HPを作ろうとしているのですが、テンプレート中で読んでいる画像が表示されません。 apache2.2でhtmlファイルで<img src="パス">で読んでいるだけなのですがブラウザで表示されません。 パスの設定ミス意外で表示できない理由は何かあるのでしょうか? ご教授のほどお願い致します。

  • Apacheでphpが急に動かなくなった

    今まで普通に動いていたのですが、何かをきっかけに動かなくなりました。 php自体は生きていますが、Apacheで動かなくなり、ブラウザでアクセスするとソースコードがそのまま表示されてしまうようになってしまいました。 ネットでいろいろ調べると、httpd.confの編集が必要で、 LoadModule php5_module modules/libphp5.so の記述が必要とありましたが、 そもそも、libphp5.so などというファイルは存在しません。 でもphpは動いています。 どうしたらいいかわかりません。Linuxの操作には慣れていません。 よろしくお願いします。(CentOS4.5 - Apache 2.0.52 - php 5.1.6)

  • Apacheの設定について

    OSはRedhatLinux7.1 Apache_1.3.26 php-4.2.3 mysql-3.23.52 を使っています。 WebサーバにApacheを使っており、 今は /usr/local/apache/htdocs の下に直接ファイルやディレクトリを置いてブラウザから見ています。 しかし、例えば、 /home/master/public_html の下に置いてあるファイルやディレクトリもブラウザから見えるようにするにはどのようにすればよいのですか? apacheの設定を変えればよいのかなと思うのですが、どこをどのように変えればよいのかわからず困っています。 アドバイスお願いします。

  • Windows版ApacheとLinux版Apacheの違い

    ApacheでWebサーバを立ち上げる予定ですが、Windows版ApacheとLinux版Apacheでは機能・性能上の違いがあるのでしょうか。また、セキュリティホールが発見された場合、Windows版の場合、最新バージョンに再インストールしなければならないのでしょうか。その場合、Apacheの設定ファイルやHTMLのファイルは初期値に戻ってしまうのでしょうか。

  • Appletからテキストファイルを常に同期

    こんにちわ。よろしくお願いします。 現在、JavaAppletを勉強中なのですが、 同じサーバ内にあるテキストファイルをAppletで表示して 手動、もしくは他プログラムからそのテキストファイルが書き換えられても その書き換えられた後のテキストをAppletで表示する、といった事は可能でしょうか? Appletはブラウザで開いたまま、としてです。 runメソッドの中にBufferedReaderを置き、 文字列を読み込んだ際に、その前に読み込んだ文字列と比較して、違えばrepaintとしてみたのですが、 Appletを表示したままテキストファイルを書き換えても、以前の文字列のままでした。 キャッシュやセキュリティの問題で、プログラムではどうしようもないものなのでしょうか。 当方、Javaはまだ勉強始めなので、もし解決法が分かる方いましたら、ご教授お願い致します。

    • ベストアンサー
    • Java
  • Apache/CentOS 5 にアクセスできない

    立ち上げたサーバのApacheにアクセスができずに困っています。 CentOS Linux 5.3 / 付属パッケージのApache に、 同一LANの複数(すべて)のWindows PC(XP,Vista)のブラウザから アクセスができない状態です。 (サーバのエラーメッセージが出るのではなく、 接続が拒否されたというブラウザのメッセージが表示される。 Internet Explorer, Firefox いずれも) 以下のことは確認済みです。 ・Windows PCは正常にネットワークにつながっている ・Windows PCからLinuxへはpingは通っている ・現在Linuxが入っている本体は直前までWindowsがインストールされていて、正常に使えていた(部品の故障は考えにくい) ・Linux側では80番ポートが正常に開いている ・Linux自身へポート80へtelnetすると接続可能 ・SELinuxは無効 ・iptablesなどのパケットフィルタリングは無効 ・LANケーブルを変更しても改善しない なにか簡単なことで見落としがあるかもしれませんし、 CentOSはバージョン5.1までは使ったことがありますが、 バージョンアップ(5.1->5.3)の際になにか変更されたことなどがあって、 それが影響して接続ができないのかもしれません。 解決のために、試してみるべきことなどがありましたら、 ご教授願えますでしょうか。 よろしくお願いします。

  • HTML内にTEXTファイルを表示させる方法

    現在、HTML・CSSでHPを制作しています。 HTMLファイル内に、サーバ上に設置された別のtextファイルを指定(URLを記述)し、そのファイルのテキストを表示させたいのですが、そのようなことができましたら教えてください。 (イメージとしては、インフレーム内にtextファイルを引っ張ってくる) 因みに用途としては、会社のHPに使用します。 トップページに表示させる『更新履歴』の内容のみを他の社員達が自由に編集する為、更新履歴のテキストのみのファイルを別に設置したいのです。 制作環境はIE7、ユーザに関しては把握しきれないので様々なブラウザに対応できるものを希望。 よろしくお願いします。