• ベストアンサー

Webサーバ上の*.cgiファイルは漏洩するのか?

某社の安いレンタルサーバサービスを利用しています。 Webサーバのフォルダ内に、次のようにファイルとデータを格納しています。 /public_html/index.htm ---PHPスクリプトを呼び出す。 /public_html/program/*.php --- PHPスクリプト /public_html/program/data/meibo.cgi --- テキストファイル meibo.cgi は、通常、拡張子 txt とするテキストファイルですが、外部から読み取られる恐れが高いので、cgiにしてます。 PHPスクリプトは、meibo.cgi のデータをWebページに表示します。 こういう構成で、不正侵入者により meibo.cgi を読み取られる可能性があるんでしょうか。 ハッカーさんが、いろんなツールを使って、ファイル名を調べたり、ファイルを読み取ったりするものなのでしょうか。 よろしくお願いします。

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

  • ベストアンサー
noname#7734
noname#7734
回答No.2

 PHPから見るのには、public_htmlではなくてもいいと思いますので、public_html 以下に置かないことを強くおすすめします。  public_html 以下になければ、WEBで直接URIを指定して見ることはできなくなります。  また、拡張子がcgiのファイルは基本的には見えないと思いますが、設定によっては直接見えてしまう可能性があります。設定が何らかの原因で変わってしまうことも無いとは言えません(メンテナンス時に.htaccessを書き換えたりとか)。一応、自分で見えるかどうか確認してみると良いと思います。  以下は、補足です。  扱う情報が、顧客名簿ということですので、あまり楽観的に考えないほうがよろしいかと思います。  不正に情報を得ても大した利益にはなりませんが、あなたが被る被害は甚大なものになります。信用を失いますし、場合によっては顧客に訴えられることもあります。  また、世の中には、スクリプト等の穴を探すのを楽しみにしている困った人もいます。しかも、プログラムで自動で探し回ったりするので、無差別攻撃です。規模の大小は関係ありません。

orion2003
質問者

お礼

ご答え、ありがとうございました。 >public_html 以下に置かないことを強くおすすめします。 レンタルサーバ会社の説明書の中の"フォルダ使用例"で、何もかもpublic_html 以下にファイルを置いていたので、そうしないと使えないのかと思ってました。 いま、別フォルダー作って実験したら、そのフォルダー内にもアクセスできました。 これでいくらか安心ですが・・・ >あまり楽観的に考えないほうがよろしいかと そうなんですね。やはり住所や電話などの詳細はアップなしいことにします。

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

その他の回答 (1)

回答No.1

Webサービスに関連付けされていないファイルであるなら、拡張子を変えたところで対処できることではなく そのファイルをURLから直接リクエストされると部外者に閲覧可能になると思われます。 CGIにスクリプトだと関連付けしているのでしたら スクリプトエラーになるとは思いますが スクリプトエラーでアクセスエラーをおこすより 手前のパーミッション処理でアクセス禁止にするのが一般的かと・・・・ また、安いレンタルサービスはそれなりなので Webサービス自体の貧弱を豆に更新する事がすくないので、脆弱性を狙われて情報が漏洩するパターンがありえます<そもそも安いレンタル業者自身が故意にやる可能性もありえます

orion2003
質問者

補足

さっそくありがとうございます。 >パーミッション処理でアクセス禁止にするのが 「644」とかいう3桁で設定するやつですね。 でも「600」にしてしまうと、PHPスクリプトがそのファイルを読み取ることができません。 >脆弱性を狙われて情報が漏洩するパターンがありえます 普通WEBサーバ上には盗んで価値のある情報はあまりないと思いますが、それでも情報収集する物好きがいるもんでしょうか。 私が置きたい情報は、お客さんの名簿です。 2回目から住所の入力を不要にするために。 そんな名簿盗んでも、名簿屋さんに流しでもしないと価値ないと思うんですが・・・。 >レンタル業者自身が故意に それは、ここでは別問題にしましょう。

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

関連するQ&A

  • WebサーバとDBサーバを用いてファイルを格納したいです、教えてください。

    PHPとMySQLを使用して、DBにバイナリファイルを格納する方法を考えています。WEB上からバイナリファイルをアップロードしてDBに格納し、後でダウンロードできる仕組みを作りたいです。使用しているサーバはfedora11です。 PHPとDBの連携はできたのですが、バイナリデータの格納方法は探しても見つからなくて困っています。誰か教えてください。

    • ベストアンサー
    • MySQL
  • web mart cgi

    http://www.kent-web.com/cart/mart.html に書いてあるように カゴCGIスクリプトURL ( http://から記述 ) $script = 'http://www7b.biglobe.ne.jp/~blythe/mart/mart.cgi'; # 注文CGIスクリプトURL ( http://から記述 ) $order = 'http://www7b.biglobe.ne.jp/~blythe/mart/mart_order.cgi'; # 管理CGIスクリプトURL ( http://から記述 ) $admin = 'http://www7b.biglobe.ne.jp/~blythe/mart/mart_admin.cgi'; # データファイル( / から始まるフルパス ) $datfile = '/public_html/mart/data/mart.dat'; # 「特定商取引に関する法律」の表示内容 # → 引用: http://www.jadma.org/guid_mai/guidelin.html $rawfile = '/public_html/mart/data/mart_raw.txt'; # 在庫管理を行う (0=no 1=yes) $stock = 0; # 在庫ファイル( / から始まるフルパス ) $stkfile = '/public_html/mart/data/stock.dat'; # ファイルロック形式 # → 0=no 1=symlink関数 2=mkdir関数 $lockkey = 0; # ロックファイル名 $lockfile = '/public_html/mart/lock/mart.lock'; やりましてCheck Mode 在庫データパス: OK 在庫データパーミッション: OK 登録データパス: OK 登録データパーミッション: OK sendmailパス: OK バージョン: Web Mart v1.7 できましたが http://www7b.biglobe.ne.jp/~blythe/mart/mart_admin.cgi 管理者モードには入れないのです。 errors Can't locate ./lib/jcode.pl in @INC (@INC contains: /usr/local/pkg/perl/5.8.7/lib/i386-linux-thread-multi /usr/local/pkg/perl/5.8.7/lib /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl .) at mart_admin.cgi line 9. どうやればいいのですか?

  • PHPファイルのシンボリックリンクの実行で Internal Server Error

    プログラムファイルが以下にあるとします。 /home/pgroot/public_html/test.php 内容は、 <?php print "ok"; ?> という最小限のスクリプトです。 これに、以下のようにシンボリックリンクを張ります。 /home/myhome/public_html/test.php (---->/home/pgroot/public_html/test.php) リンクの方をWEBからアクセスすると、Internal Server Error になります。本物の方をWEBからアクセスすると、正常に動作します。 Internal Server Error の時の Apache のエラーログには以下の記述があります。 [error] Premature end of script headers: /home/myhome/public_html/test.php 他のサーバーでは普通に動くのですが、なぜこのサーバーでは動かないのかという鯨飲を知りたいのですが、どなたかアドバイスいただけませんか? よろしくお願いします。

  • 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
  • さくらのサーバーでwww配下のcgiを使用し、サーバールートのファイル

    さくらのサーバーでwww配下のcgiを使用し、サーバールートのファイルを表示 ルートディレクトリ(wwwフォルダと同じ階層)にテキストファイルを設置し、 www配下に設置したcgiをブラウジングした際に、テキストファイルの内容を表示する仕組みを作ろうとしています。 別のサーバーでは動いているようですが、 なぜかさくらでは変数の値が表示されません。(<hr>は表示されています) ちなみにcgiのファイルとフォルダのパーミッションは755に設定しています。 わかる方いらっしゃいますでしょうか? よろしくお願いします。 cgiのソースは下記になります。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー #! /usr/bin/perl open (FILE, "</home/txt1.txt"); $lst = <FILE>; close(FILE); open (FILE, "</home/txt2.csv"); $dat = <FILE>; close(FILE); print <<END; Content-Type: text/html; charset=Shift_JIS <html> <head> <title>testcgi</title> </head> <body> $lst <hr> $dat </body> </html> END ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

    • ベストアンサー
    • CGI
  • サーバーでCGIを動作させるには?

    自宅サーバーでCGIを動作させたいのですが、うまく動作しません。 ○サーバー環境 OS:Windows Server 2003 Web Edition SP1 CPU:Intel Xeon 2.8GHz メモリ:1GB RAM ○現在の状況 htmlは、問題なく動作してます。 cgiを実行すると、エラー404となります。 ○CGI動作にあたって行った作業 (1)ASPの実行を許可しました (2)Perl構成にあたり、ActiveState社のActivePerl-5.8.820-MSWin32-x86-274739.msiをダウンロードし、Dフォルダにインストールしました。 (3)IISマネージャで、「Webサービス拡張」→「Perl CGI Extension」を許可しました。 (4)IISマネージャで、「Webサービス拡張」→「すべての不明なCGI拡張」を許可しました。 (5)実行アクセス権を設定するために、実行するCGIを格納するディレクトリの「実行アクセス許可」を「スクリプトおよび実行可能なファイル」としました。 (6)CGI拡張子と実行可能ファイルを関連付けるために、実行するCGIを格納するディレクトリの「アプリケーションの設定」→「構成」→「アプリケーションの拡張子」→「追加」で、 実行可能ファイル「D\Perl\bin\perl.exe"%s"%s」 拡張子「.cgi」としました。 ○CGIが動作するか確認するために、サンプルCGIを作成し、上記設定を行ったディレクトリ以下に配置しました。 ○結果 クライアントで、http://サーバー名/ディレクトリ名/ファイル名 と入力すると、エラー404 ページが見つかりません。と出ます。 間違った操作や、考えられる間違い箇所がありましたら、指摘ください。

  • CGIが上手く設置できません

    質問させていただきます。 CGIがうまく設置できなくて困ってます。 PCはMacでFTPソフトはFetchです。 KENTWEBのClipMailを設置したいです。 http://www.kent-web.com/data/index.html サーバーの方はCGIを設置OKで、Perlのパスは下記のようになる様です。 http://www.cpi.ad.jp/support/faq_func/faq_func_cgi/support-187.html KENTWEBの説明に書いてあるようにCGIファイルをテキストエディットで開いて 各項目を変更しました。 ※でもsendmailのパスはサーバーサイトに書いていなかったので 取り急ぎ空欄で設定しました。 http://www.kent-web.com/data/clipmail.html その後、Fetchのテキスト形式でアップロードしました。 ※public_html直下にはアップロードしませんでした。上げたのは3階層中です。 あらかじめ、サーバー側がCGIファイルを入れるフォルダ(cgi-binフォルダ)がありましたが その中に入れなくても良い様なので、別階層にいれました。←public_html直下でなく3階層中。 http://www.cpi.ad.jp/support/faq_func/faq_func_cgi/support-186.html その後、アクセス権を設定しました。 init.cgiは644で、それ以外は755 確認するとエラー画面が表示されました。 このような流れなのですが、何が良くなかったのでしょうか… アドバイスよろしくお願いします!

    • ベストアンサー
    • CGI
  • ファイルサーバーとウェブサーバーを分ける

    こんにちは。 ふと気になったので教えていただきたいのですが、 例えば、イラスト系SNSのような画像が大量にあるサイトにおいて、 DBサーバーとウェブサーバーを分ける方法は分かるのですが、画像ファイルを取り扱うファイルサーバーを別途用意する場合、一般的にはどのような方法で画像格納先を指定するのでしょうか。 思いついた方法としては、ファイルサーバーのIPにサブドメインを割り振っておいて、ウェブサーバーで書き出す画像の格納先をhttp://サブドメイン/画像の名前.jpgのようにする、というものなんですが・・・。 ただ、これだとファイルサーバーを複数台数にしたい場合はどうするんだろう・・・。などの疑問点が残っています。ファイルがどのファイルサーバーに保存されているかをDBに記録しておいて、ウェブサーバーで動的にサブドメインを指定して吐き出す、というような方法になるのでしょうか。 雑多な質問で申し訳ありませんが、全体的なところを教えていただけますと幸いです。 宜しくお願い申し上げます。

  • Webサーバの設定で…

    全然知識がないのですが、ある企業で、Webサーバの管理をしている立場であり、HPを作成した部署からファイルを受け取り、 サーバにアップしているのですが、cgi-binフォルダ内の*.plファイルをCGIスクリプトと認識させて欲しいと言われました。 そこで、httpd.conf内の「AddHundler cgi-script .cgi」欄に「.pl」を追加入力しようとしたのですが、「AddHundler cgi-script .cgi」の前に 「#」がありコメントアウトされていました。しかし、実際のホームページでは、cgiプログラムのカウンタが正常に動いています。 これはどうしてでしょうか。他にcgiを実行可能な拡張子を設定するところがあるのでしょうか。 お分かりの方、ご教授をお願い致します。

  • Apache/2.2.13 WebサーバーでCGIが動きません

    ご迷惑をおかけして、すいません。 何方か助けてください。お願いいたします。 OS Redhat Linux Fedora 11 バージョン 1.430 Webサーバー Apache バージョン 2.2.13 perl perl 5.10.0-73.fc11 httpd.confの記述 ------------------------- AddHandler cgi-script .cgi .pl ScriptAlias /cgi-bin/ "/home/www/cgi-bin/" <Directory /home/www/cgi-bin> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> ------------------------ デレクトリー /home/www/cgi-bin 属性(775 rwxrwxr-x) CGIファイル 属性(775 rwxrwxr-x) http://eiwa-up.com/cgi-bin/index.pl http://eiwa-up.com/cgi-bin/index.cgi 同じファイルで拡張子が.plは正常に動作します。 拡張子が.cgiだと動かない状態です。 お忙しい中申し訳ありませんが、何方か助けてください。 お願いいたします。 趣味で無料レンタルCGIをボランティアで提供していたのですが、 先月Linux Laser5が老朽化のためダウンしてしまい、新しくFedora11のwebサーバーを新インストールしているのですが私の知識では解決できそうにありません。無料レンタルCGIで使用していたサーバーのためたくさんの方にご迷惑おかけしている状態です。 なぜ.cgi拡張子だと動作しないのか?解決方法を教えていただけたら憂いしいのですが。よろしくお願いいたします。

発電機のチョークとは?
このQ&Aのポイント
  • チョークとは、発電機で燃料バルブを絞ることを指します。
  • チョークは英語で「choke」と言います。
  • 英語のチョークは、黒い板状の物質で、主に学校の黒板に使われる道具を指します。
回答を見る