• ベストアンサー

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

noname#7734の回答

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

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

orion2003
質問者

お礼

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

関連する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
  • cgiなんですが....

    http://www.kent-web.com/data/mart.html cgiの買い物かごシステムなのですが、下記のディレクトリ構成例のpublic_htmlってなんでしょうか?自分のレンタルサーバーではトップページ を表示するにはftpソフトでつなぐとhttpdocsってホルダにindex.htmlをいれますが、そこにpublic_html って書いていれれば、いいのですかね?cgiつくりにダウンロードしたものはmart.cgi,mart_order.cgi ,mart_admin.cgi mart_init.cgi ,mart.dat ,mart_raw.txt mart.html なんですが、public_html っていうのがみあたりません。 public_html のフォルダの中にホームディレクトリ?がある構成に見えるし、なんでしょう?mart / mart.cgi [755] mart_order.cgi [755] mart_admin.cgi [755]mart_init.cgi [644] jcode.pl [644]mart.dat [666] mart_raw.txt [644]cgiのフォルダにpalのパスかえたり、してパーミッション設定してあげれば、良いのでしょうか?絵では下のような説明になっています。 【ディレクトリ構成例】 public_html / (ホームディレクトリ) | +-- mart / mart.cgi [755] mart_order.cgi [755] mart_admin.cgi [755] mart_init.cgi [644] jcode.pl [644] mart.dat [666] mart_raw.txt [644]

    • ベストアンサー
    • CGI
  • さくらのサーバーで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を実行可能な拡張子を設定するところがあるのでしょうか。 お分かりの方、ご教授をお願い致します。