• ベストアンサー

ログファイルって情報が漏れるのでしょうか?

CGIでログファイルを使用していますが、ログファイルの中身が外部から盗まれることってあるのでしょうか?あるとすればどのように対策すればよいのでしょう?

  • egypt
  • お礼率87% (175/199)

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

  • ベストアンサー
  • Spur
  • ベストアンサー率25% (453/1783)
回答No.4

補足に対してです。 質問の趣旨は分かっていりつもりですが、確認します。 サーバに何らかCGIがある。 そのCGIは誰でもアクセスできる。 しかし、ログファイルは、内容を盗まれないようにしたい。 ではないのですか? 掲示板に表示するための書き込みデータが格納されたファイルは、単なるデータファイルです。 ログファイルというのは、いつ、誰がftpしたか、とか、システムとして管理されるものです。 ですから、本来は、CGIとはまるで関係が無いのですが、egyptさんは、そのSystem Log fileではなく、単なるデータファイルのことを「ログファイル」言っているのだろうと思って回答をしています。 つまり、掲示板に表示するのは、そのログファイルの内容全てではなく、例えば、アクセス者のIPアドレスやドメインなどの情報も入っているので、ログファイルの内容をすべて見られるのはまずい。ということではないのですか? だから、CGIをドキュメントルートの下ではなく、CGI専用エリアに入れれば、単純にはアクセスされなくなると回答しています。 CGIプログラムも、そのデータファイルもドキュメントルートの下にあるなら、先に書いたように、そのファイル名を指定すれば見えてしまいます。 それから、管理者は、そのログファイルの内容をすべて見たいわけですから、管理者専用モードか、管理者専用CGIがあって、それでアクセスすれば全ての内容が見られるようにするのが普通です。 その場合、管理者だけにアクセスを許す仕組みとして、ベーシック認証を使うのが安全性が高くて簡単ですが、管理者用CGIにパスワード認証を入れても可能です。 しかし、パスワードだけでは適当に入力すれば見つかってしまうので、パスワードだけでなく、IDも組み合わせた方が良いでしょう。とのアドバイスです。 > ただ、直接URLを入力して読み出そうとすると ちょっと意味が分かりません。 http://www.xxx.yyy.jp/cgi-bin/userdb.dat といった形式でアクセスするという意味なら、それで読み出せるか、ダウンロードできますよ。 もしできなくて、「file not found」以外のエラーなら、ファイルは存在するがアクセスができないということなので、巡回ソフトを使えば簡単にダウンロードできます。

egypt
質問者

補足

毎度回答ありがとうございます 質問の内容はお察しの通りです。単なるデータファイルをログファイルと言っているだろうとまでわかって頂いて恐縮です。 ベーシック認証を調べてみようと思います。 「直接URLを入力して読み出そうとすると・・・」ですが、http://www.xxx.yyy.jp/cgi-bin/userdb.logと入力して読み出そうとすると下記のエラーがでます。これでもやはり巡回ソフトで簡単にダウンロードされちゃうんでしょうか? 関係ないかもしれませんが、Spurさんが書かれているような拡張子が datではなく、logとしています Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, 「メールアドレス」 and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Apache/1.3.27 Ben-SSL/1.48 Server at 「URL」 Port 80

その他の回答 (3)

  • Spur
  • ベストアンサー率25% (453/1783)
回答No.3

補足について httpdとは、webサーバとも言い、htmlやcgiを理解してブラウザに出力するための基本ソフトです。 Netscape社のEnterpriseやMicrosoft社のIISなどもありますが、OSがLinuxならApacheの可能性が高いですね。 cgiを置く位置は、cgi-binという名のディレクトリだろうとは思いますが、それがどこにあるかが問題です。 ドキュメントルートの下か、別のところかによって安全性も異なります。 URLで表現すれば、そのCGIをアクセスする時のアドレスが http://www.xxx.yyy.jp/cgi-bin/...... ならばドキュメントルートの下です。 別のところにおいてあれば、例えば、 http://cgi.yyy.jp/xxx/..... などとなります。 (注)「xxx」があなたのアカウントです。 先のドキュメントルートの下の場合は、上記のアドレスの後に、適当に文字をつけて、 http://www.xxx.yyy.jp/cgi-bin/data.dat http://www.xxx.yyy.jp/cgi-bin/userdb.dat などとすれば、その内に当たりになり、読み出すことが可能です。 ドキュメントルート以外に置いてあれば、このような指定の仕方だけでは読み出せません。 これらはhttpdの設定がどのようになているかで決まります。 >CGI自体の管理者パスワードやベーシック認証は気にしたことがありません それじゃあ、管理者でなくても誰でも読み出せてしまうということですか? 最低でも管理者用のIDとパスワードを入力しないと動作しないようにするべきだと思いますけど? それを、CGIにそのような機能を付けるか、Apacheのベーシック認証を利用するかの違いです。

egypt
質問者

補足

ものすごく誤解を与える質問をしてしまったのか、私の知識がなくとんちんかんなことをいっているのか分からなくなってきたので、もう少し詳細に説明します。 今回質問しているCGIは掲示板のようなものです。そこに書き込まれた内容をログファイル(テキストデータ)に記録し、それを読み出すというものです。 掲示板のようなCGIが置かれているURLはhttp://****.cgiで誰でも読み出せるようにしておくものだと思っていましたが、違うんでしょうか? CGIを置いてある場所はドキュメントルートの下になってますね~。 ただ、直接URLを入力して読み出そうとするとInternal Server Errorというものが表示されるので、これで大丈夫なのでしょうか? たびたびすいませんが、お分かりでしたら教えてください。

  • Spur
  • ベストアンサー率25% (453/1783)
回答No.2

あまりにも漠然とした質問なので、なんとも言えませんが、 (1)サーバのOSとhttpdは何ですか? (2)そのlogファイルはどこに置いてありますか? (3)そのlogを見るCGIがあると思いますが、そのセキュリティは? などを調べないと何とも言えません。 (1)がWindowsマシンで、IISなどを使っていれば最悪です。 (2)document rootの下にあれば技術的には可能です。 (3)CGI自体に管理者パスワードなどがあるだけか、ベーシック認証などを使っているか、によっても違います。 (2)で、document rootにあっても、(3)がしっかりしていれば、技術的には可能ですが、かなり高い知識と技術が無いと他人のサーバのファイルを見るのは難しいですね。 (3)が甘くても、document rootの下に無ければ、ほとんど不可能でしょう。 しかし、自分もftpなどでPCに持ってくる以外には見られません。 logファイルが見られても困ることはないと思うのですが、見せたくないのであれば、それほど難しくなくて、そこそこ安全なのは、(3)で、CGIのパスワードだけに頼らずに、ID+パスワード方式にしたり、一番良いのはベーシック認証にすることだと思います。 確実に安全にしたければ、document rootに置かないか、そもそもlogファイルをサーバに残さないことだと思います。

egypt
質問者

補足

ご回答ありがとうございます。 (1)サーバーのOSですが、Red Hat Linux 7.2というやつみたいです。 httpdとは何でしょう?知識がなくてすいません。 (2)ログファイルはサーバー会社よりcgiを置くように指定されたcgi-binの下にディレクトリを作成し、そこにおいてあります。 (3)CGIにはHTTP_REFERERを使って自分のホームページ以外からのアクセスをできないようにしているくらいです。 以上の内容ですが、いかがなものでしょうか? CGI自体の管理者パスワードやベーシック認証は気にしたことがありませんでしたが、どのようなものなんでしょうか?参考になるホームページ等ご存知でしたら教えてください。

  • mld_sakura
  • ベストアンサー率20% (264/1282)
回答No.1

だいたい以下のようなポイントがあります。 そのログファイル自体のパーミッションはどうなってますか? そのディレクトリは外部に公開されてますか? 一般的には、html_rootで定義されていないディレクトリに置けば問題ないでしょう。

egypt
質問者

補足

回答ありがとうございます。 ログファイルのパーミッションは666です。 サーバーはレンタルしているのですが、ログファイルはサーバー会社よりcgiを擱くために指定されているcgi-binの下にディレクトリを作成し、そこにおいてあります。 これで大丈夫でしょうか?

関連するQ&A

  • ログファイルからデータ呼び出し。

    ログファイル(例えば1.logという名前とします)の中身を呼び出し、それを現在表示されているcgiのフォーム内に 表示させるにはどのようにしたらいいのでしょうか? たとえば、クッキーみたいに <input type=text name=021118 value=***></input> とすればできるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • ファイルのアクセスログを知りたいのですが

    Wiindows2000の自宅サーバーについて質問です。 タイムカードのようなcgiがあり、1日に2回、アクセスがあってログが 書き換えられます。 例えばNo.001の人は、2007年1月1日に以下のようなファイルを朝作成して 朝のアクセス時刻を手入力により記録、また夕方には帰りの時刻を手入力 により記録しています。 cgi\log\001\070101.dat  この中身は 「9<>00<>17<>00<>社内業務<>」 のようになっています。 この、1日2回のアクセス時刻を管理したいのですが、ファイルの検索で、 2007/1/1に修正されたファイルを検索すると、更新日時は最後にアクセス された夕方の時刻でしかわかりません。 このファイルにいつアクセスされたか、朝と夕方の正確な時刻がわかるような ログは、どこかに残っているのでしょうか。 ご教示よろしくお願いします。

  • LOGファイルのアイコンが変わっちゃって・・

    DLしてきた○○.logファイルを間違ったアプリケーションで開けたらアイコンが変わっちゃったけど、まずいですか?CGIスクリプトに使うやつなのですが・・・。そもそも○○.logファイルってどんなアイコンですか?慌てて忘れちゃいました。アイコン変える時は、フォルダオプションから変えるのですよね?そのあとが分からないのです。どなたか、お教えくださいませ。

    • ベストアンサー
    • CGI
  • logファイルがあるといつまでもサーバに残るの?

    例えば掲示板のCGIをサーバに転送して、そのファイルの中にlogファイルがあったとしたら、掲示板に書き込んだものは、サーバにいつまでも残っているものなのでしょうか?

    • ベストアンサー
    • CGI
  • HPへの訪問者の情報をログに残す

    自分のホームページに訪れた人の詳細情報、例えば名前はもちろん無理な ことなので、その訪れた人のIPアドレスとかプロバイダーとか、 そのような識別ができるようなモノを JAVAスクリプトやCGI(perl)を使用して ログファイルに残したいのですが、 何か手段はないでしょうか?また、そのようなフリーソフト(CGI)とかは ないでしょうか?

  • ログファイルの中から1行だけ削除。

    cgiを使用してファイルの削除を行いたいのですが、***.htmlなどファイル単位で指定するものは できたのですが、logファイルの中にある、任意の1行だけを削除したい場合はどうしたらいいのでしょうか?

    • ベストアンサー
    • CGI
  • 掲示板のログとカウンターの数字が同時に消えました!

    ニフティでホームページを作っています。 フリーのCGIで配布されているカウンターと、掲示板(別々のところの)を使っていましたが、気づいたら掲示板のログが消えて、カウンターも1に戻っていました。 調べたところ、カウンターの数字を記憶しているdatファイルはサーバーにあったのですが、中身が白紙になっていました。数字が全くないのです。 カウンターは1のままで誰が何度クリックしても 数字は増えなくなっていました。掲示板は真っ白で書き込みもできなくなりました。 掲示板のログを記録しているdatファイルが存在してるのに中身だけ消えて白紙になってました。 (掲示板のログのdatファイルは四つあり、現在の分の一番新しいものだけが中身が消えてました。) ニフティに聞いても、なにも操作はしてないといわれそのCGIのエラーではないかといわれましたが、同時に二つのものが壊れるとは考えられないのです。 最近はファイルのアップロードもしていなかったので、間違えて削除したとは考えられません。 しかもファイルがないならともかく中身だけ白紙に戻るとは、何が起こったのか全くわからないのです。 原因がわかる方がいらしたら、教えてください。 ログを戻すことはやっぱり不可能ですよね。消えてるわけだから。また同じことにならないようにしたいので、何かありましたら教えてください。 中身が消えたファイルは「Daycount.dat」と「4.dat」という名前です。

  • apacheのログファイルについて

    こんにちは。質問させてください。 Apacheのログファイルを見るanalogというツールがあるのですが、 このツールに詳しいサイトなどご存知の方がいらっしゃいましたら 教えてください。 また、analogに渡すログファイルのファイルの中身などの 設定などご存知の方がいらっしゃいましたら、 教えてください。 よろしくお願いいたします。

  • データ件数が多いことによってログが消えたりしますか?

    1500件ほどのログデータがあります。(.txt) このログデータに追加をしたり、修正を加えています。 (cgiを使って) 最近気づいたのですが、以前入力したはずのものが消えていたりするんです。 でも全部が消えるわけではなく、一部が消えるので、プログラムのミスではなさそうなんですが。 このログデータ+cgiは社内のサーバーにアップデートして使用しています。 以前はWeb用のサーバーにおいてあり、使用していましたが、データが消えた?というようなことはなかったのですが、 社内の方においてからそのようなことがおきているのではないかと思うようになりました。 社内の人はそこへは入らない(入れない)ので、もし攻撃を受けているとしたら外部からなのかな?と思い、ログをコピーし、 ローカルに保存しておき、数日たってから中身を照合しようとは思っています。 ですが、あんまりその可能性は考えられないので、それ以外に理由があるのかな?と思ってます。 件数が多いことでログデータが勝手に削除されたりすることはあるのでしょうか? ※cgiはperlでかいています。

    • ベストアンサー
    • CGI
  • CGIのログファイル

    掲示板で使うCGIを変えるときに、今使っているCGIのログをそのまま新しいCGIに移したいのですが、手作業では量が多すぎてできません。 何かいい方法はありませんか? 説明がうまくないので、一応例を書いときます。 例)apeskin+ のログを CLEVER BBS 用のログに変換する