• ベストアンサー

Webでファイルを読まれないようにするには?

ホームページ内でPerlの掲示板(フリーのもの)を運用しています。 その掲示板内で特定の処理を追加しました。 特定のIPからは掲示板が動かない様にする仕組みです。 特定のIPは設定ファイル(xxxxx.txt)に書き連ねています。 それを掲示板のcgiから読み込んで照らし合わせています。 処理自体は上手くいくのですが、設定ファイル(xxxxx.txt)がブラウザから 丸見えになっています。 これをブラウザから見られない様にする方法はないでしょうか?

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

  • ベストアンサー
  • yone_sk
  • ベストアンサー率34% (58/167)
回答No.2

./ ├ public_html │ ├ index.html │ └ bbs │    └ bbs.cgi └ settings    └ xxxxx.txt フォルダ構成がこんな感じで、公開フォルダがpublic_htmlなら settingsフォルダに設定ファイルをおく。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.5

方法はいくつかあります。 1.公開ページに置かない。設定ファイルは非公開の場所に保存する。 2..htaccessでアクセス制限をする。 3.パーミッションを変更する。 4.拡張子を、plとかcgiにする。 5.判りにくいファイル名にする。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

昔やってたのは拡張子を変える手段です hoge.cgi のように拡張子を変えるとアクセスした際にCGIとして起動しエラーが発生し中身が見えないといった感じだった気がします 後はファイル名を推測されないものにし、同じ階層にindex.htmlを用意しておくことでしょうか サーバの設定次第ではインデックスがないとファイル一覧がでてしまうこともあるのでその対策です ファイル名さえ分からなければ基本的に問題無いのではないかなと思います。 もっとやるなら外部ファイルを暗号化して掲示板スクリプトで読んだら復元するとかでしょうか ただそこまでやらずともファイル名に気を使えばなんとかなる気もします

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

昔やってたのは拡張子を変える手段です hoge.cgi のように拡張子を変えるとアクセスした際にCGIとして起動しエラーが発生し中身が見えないといった感じだった気がします 後はファイル名を推測されないものにし、同じ階層にindex.htmlを用意しておくことでしょうか サーバの設定次第ではインデックスがないとファイル一覧がでてしまうこともあるのでその対策です ファイル名さえ分からなければ基本的に問題無いのではないかなと思います。 もっとやるなら外部ファイルを暗号化して掲示板スクリプトで読んだら復元するとかでしょうか ただそこまでやらずともファイル名に気を使えばなんとかなる気もします

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

設定ファイルを公開フォルダにおかないだけでは?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ダウンロードのファイル名が指定した拡張子にならない、なぜ?

    ネットワーク上からインターネット経由で”xxxxx.txt”を”xxxx.cgi”と言うファイル名でセーブすると”xxxx.cgi.txt”でセーブされてしまう。ネットワーク上の他の端末では指定した拡張子でセーブすることができる。クライアントの設定だと思うのですがどこでどのような設定になっているのでしょうか? 色々、試みましたが未だ不明です。宜しくお願い致します。 以上。

  • ファイルを自動生成させたいのですが・・・

    すいません初心者ですが・・・ 設置しているCGIと同じディレクトリに「test.txt」というファイルを生成したい場合、 CGIに、 open IN, ">test.txt"; close IN; と記述しましたが、test.txtが生成されません。 何か問題があるのでしょうか? 最終的には、すでにtest.txtと言うファイルが存在しない場合はなにもせず、 、存在しない場合はtest.txt(読み書き可能のファイル)を自動生成するような仕組みを作りたいのです。 使っているCGIはメールフォームCGIで、回答結果をtest.txtファイルに蓄積していくのですが、 上記のような機能を追加させyたいのです。

    • ベストアンサー
    • CGI
  • 自前サーバでCGIを~

     まずはLAN内だけで掲示板などのCGIを実行できるようにしてみよう、ということでApacheを使ってCGIの設定をしているんですが、ブラウザからCGIファイルを起動してもInternal Server Errorと出てしまいます。よってそれ以前ということで・・・  コマンドラインから「perl test.cgi」のようにCGIファイルを実行してみるとちゃんと動作するんですが、「type -a perl」で検索したフルパスをそのままCGIファイルに「#!/usr/bin/perl」などのように書いても、ファイルがコマンド化されてくれません。でも、perlの実行ファイルは存在していました。  これは、どうすれば解決できるのでしょうか?

  • UTF-8対応のCGIを作成するには

    今回、初めてUTF-8対応のCGIを作成しようと考えています。簡易掲示板型のものです。 (過去にはShift-JISのものを作成したことがあります) 現在いろいろ調べているところですがいまひとつ理解できていません。 使用するファイルは [A] 入力用&出力用HTML [B] データファイル (.txt) [C] CGI (Perl) 処理するデータは [1] HTML内フォームから入力されたデータ [2] データファイルから読み込んだデータ [3] データファイルに書き込むデータ ([1] をデータファイルに追加書き込み) [4] HTMLに出力するデータ ([1] と [2] を組み合わせて作成) ファイル3つをUTF-8Nで作成し、HTMLでcharsetをUTF-8に設定すればよいらしいことはわかったのですが、 CGI内では何を設定しておかなければいけないのでしょうか。 また、UTF8フラグなるものが存在するようですが、データ[1]~[4]のうち ・初期状態でUTF8フラグがつくもの/ないもの ・処理時にUTF8フラグの追加/削除をしなければいけないもの はどれなのでしょうか。 ご教示いただければ幸いです。

    • ベストアンサー
    • CGI
  • ソースコードがそのまま表示されてしまう

    turbolinuxのマシンにapache,mysql,perlを入れてデータベースを動かそうと思っています。 実際に動くかどうか動作確認をしてみました。 最初にindex.htmlを先頭に持っていかないとだめだという事なので最初にindex.htmlを置きその後ろにcgiファイルを置いてみました。 ブラウザー上から確認してみると index.htmlは表示されました。 そこからcgiファイルにリンクしてある仕組みになっています。 リンクのボタンをクリックするとcgiファイルのソースがブラウザー上に出てきてしまい、肝心の処理結果が出てきません。 自分のソースが間違っているのではないかと思い、あれこれやってみましたができません。 apacheの設定がわるいのでしょうか? どうか教えて頂ける方おりますでしょうか? お願い致します。

  • cgiを使ってサーバ上にファイルを作成する方法

    無料のサーバスペースを使用してHPを作っています。 perlを使って自作したcgiをwindowsのコマンドラインで実行すると open(F,">oceco.txt"); print F "oceco\n"; close(F); この記述でファイルが新規作成されるのに、サーバー上のcgiで実行するとファイルが新規作成されません。 しかし、空のoceco.txtをFTPでサーバーに送って属性変更を済ませ、cgiを実行するとoceco.txtの中身が変更されます。 同じサーバでフリーの掲示板cgiを使用していますが、ログファイルを新規作成できています。 そこで質問です。 cgiをつかってサーバ上でファイルを新規作成する方法を教えてください。

    • ベストアンサー
    • Perl
  • FOR文のログファイル書き出し

    以前こちらで、for文を教えてもらいました。 同じディレクトリにある*.txtファイルの最後の行に、XXXXXを追記するというものです。 FOR %%F IN (*.txt) DO echo XXXXX >> %%F ここで同じディレクトリにある*.txtが、2000ファイル近くあるので、処理がされたかどうかをログファイルとして書き出したいのですが、FOR文を使ったリダイレクション(>>)は、どのようにやるのでしょうか? (当然ながら、FOR %%F IN (*.txt) DO echo XXXXX >> %%F >> log.txt などとしてもダメでした) お手数をおかけします。よろしくお願いいたします。

  • cgiとplとpm

    掲示板ソースをダウンロードするとplやpmという拡張子のものがありました。中身はPerlでした。 拡張子の使い分けを教えてください。 適当に4つのルールを書いてみましたので、間違っていたり、追加するルールがありましたから教えてください。 1 ブラウザがそれ自身にアクセスし、ブラウザのアドレスバーに表示させるならcgiにするべき。 2 Perlのpackageの機能を使うなら、パッケージファイルはplかpmでなくてはならない。 3 Perlのrequireの機能を使うなら、その外部ファイルはplでなくてはいけない。 4 Perlのuseの機能を使うなら、その外部ファイルはpmでなくてはならない。

    • ベストアンサー
    • Perl
  • テキストファイルに書き込めない(ファイルの所有者と実行者の違いか?)

    テキストファイルにログを書き込む以下の処理があります。 aaa.pl -------------------- open Log,">>aaa.txt"; print Log 'test'; close Log; Web上(アパッチ)からこのaaa.plを実行すると 正常に処理されて、aaa.txtに書き込まれます。 (aaa.txtのオーナーはwww。属性は644) それとは別に、/etc/aliasesに 特定のメールアカウントにメールが送られた時に このaaa.plが実行されるように設定しているのですが mail_address: "|/ccc/aaa.pl" (パスは適当ですが、実際にはあっています) こちらからaaa.plが処理させても、 aaa.txtに文字列が書き込まれなくて困っています。 open Log,">>aaa.txt"; chmod 666,"aaa.txt"; ... とPerl側でパーミッションを変更させようとしても うまく変更されていません。処理もされません。 おそらくaliasesに設定したPerlの実行権限者が ファイルの所有者(この場合www)と異なる為 書き込みもchmodもうまくいかないと思うのです。 aliasesで実行させるアカウントは いったいどのようなアカウントなのでしょうか(binユーザーとか?) また、これを回避するにはどのようにすればよろしいでしょうか? どなたかご存知の方、どうぞよろしくお願い致します。

    • ベストアンサー
    • Perl
  • 簡単なファイルアップロード

    perl のスクリプトの勉強に、ファイルアップロードのごくごく簡単なスクリプトを探してます。 CGIの仕組みを理解するくらい簡単なのでいいので、よろしくお願いします。

    • ベストアンサー
    • Perl