• ベストアンサー

CGIを覗かれないように

最近はダウンロードツールやハッキングツールなどが 簡単に手に入り、PerlでCGIを書いてあると簡単に中身を DLLされ、覗かれてしまいます。 そこに管理パスなど書いていたらもうやりたい放題です。 これらをダウンロードツールなどではDLL出来ないように するにはどうすれば良いのでしょうか? 私が知らないだけで初歩的な質問かも知れませんが、宜しくお願いします。 .plなんかはやはりまずいのでしょうね? シュアウェアを公開されている方なんかは標準でそうなっているようですが。。。 宜しくご教授お願いします。

  • CGI
  • 回答数4
  • ありがとう数1

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

  • ベストアンサー
  • kazu-kun
  • ベストアンサー率31% (72/232)
回答No.4

.cgiなら通常は実行された結果しか送られないので中身が見られることはないと思います。中身が見えてしまう場合は、サーバでCGIを実行する設定になってません。 .plの場合は、パーミッションが705,704など第三者に読み取り権限があると、中身が見られてしまいます。 プロバイダによっては、サーバの設定で、CGIがオーナー権限で実行されるようになっていて、その場合は、.plファイルのパーミッションが600とかでも実行できます。プロバイダに確認してみて下さい。

その他の回答 (3)

  • A__
  • ベストアンサー率47% (22/46)
回答No.3

俺もCGIなら相当詳しい人でない限り見られることは ないと思っています。 plならダウンロードできるみたいです。 例えば http://isweb19.infoseek.co.jp/diary/konominn/cgi-bin/ とか。ジャストシステムのオマケもダウンロードさせてくれます。

  • blue_leo
  • ベストアンサー率22% (541/2399)
回答No.2

>PerlでCGIを書いてあると簡単に中身をDLLされ、覗かれてしまいます。 ソースのことでしょうか? 普通は見られないと思いますけども.... DLLってなんですかね?ダイナミックリンクライブラリ? もしかしてダウンロードのことですかね?<DLLにはならないと思うけど... 本当に覗かれたんですか? パーミッションの設定などを込みでもっと詳しく説明しましょう。 あとへんな略語や標準でそうなっているなど意味不明な部分が多いです。 わかりやすく書きましょう。

ieyasu
質問者

補足

すみません 変換辞書に登録してたのを忘れて変換してしまいました^^;; DLL>>DL のつもりでした。 ダウンロードです。 普通は見られない・・・・と思ってたんですが、 思いっきり開かれてしまいました。 その手口が分からず、対処が分からないのでお訊きしています。 標準でそうなってる=覗かれないようになっているようだと言う意味です。 イリアなどでダウンロードしようとしても別名のファイルを ダウンロードさせたり出来るみたいです。 その辺も私にはよく分からないのですが。 とにかく、自分で設置した 拡張子「.pl」のファイルは簡単にダウンロード出来ました。(自分のを試してみました。そういうテクニックのない私でも出来たので その方面に長けている人ならCGIも盗んじゃうことが出来るのでしょうね) というわけで、これらの対策法をお教えいただければ幸いです。

noname#15387
noname#15387
回答No.1

パーミッションはどうやってます? たとえば「755」にするはずのものなら「705」にするとかセキュリティレベルをあげることはできるかと思いますけど。 ハッキングツールってパーミッション関係なしで侵入しちゃうんでしょうか?

ieyasu
質問者

お礼

ありがとうございます。 ということは、「.pl」ファイルなどの 「644」も「604」とすれば 簡単には開かれないのでしょうか? 「705」で動いたかなぁ? サーバーによって違うみたいなので、一度試してみます。

関連するQ&A

  • cgi-lib.plのReadParse関数

    あるパールからcgi-libを呼び出して、ReadParse関数を使おうとするとInternal Server Errorがでてしまいます。 パールの中身は #!/usr/local/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse(*in); です。 そこで3行目と5行目の行頭に#をつけて飛ばすとパールは正常に動きます。 これってcgi-lib.plのReadParse関数がいけないんでしょうか? ダウンロードしたまま何も変更していないのに..... ちなみにサーバーのパールのバージョンは5.004のようです。

    • ベストアンサー
    • CGI
  • cgiとplとpm

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

    • ベストアンサー
    • Perl
  • CGIについて

    http://www.mytools.net/cgitools/quiz2.html#install こちらのCGIに挑戦したいのですが、初めてなのでさっぱりわかりません。 4つの.cgi ファイルの最上部のPerlのパスを正しくするというところで悩んでいます。 登録メールにはperl : /usr/bin/perl と書いてありますがこれでしょうか? あとダウンロード後にファイル名を変えるように書いてありますが、変えるとファイルが開けられなくなります。 これはどうしたらいいんでしょうか?

  • IIS6.0でcgiが認識できない

    IIS6.0でcgiが認識できないのですが 以下の構成でどうなのでしょうか? 仮想パスは認識できているようなので、 http://*.*.*.*/cgi-bin/index.html は表示できます。 ■環境:win2k3/ActivePerl5.8.4/IIS6.0 #################################### アプリケーションの構成マッピング ------------------------------------ ●ISAPI拡張をキャッシュする(checked) ●アプリケーションの拡張子 .pl D:\user\local\bin\perl.exe GET,POST .cgi D:\user\local\bin\perl.exe GET,POST ※スクリプトエンジン(checked) ※ファイルの存在を確認する(checked) #################################### perlの実行ファイルは,ググった結果、以下のものも試してみましたが だめでした。 perlIS.dll perl5.8.4.exe perl.exe "%s" %s どうぞお願いします。

  • apacheでcgiがうまく動かない。cgiが認識されていない?

    すいません、多分基本的な所なのですが、 どうしても分からないので質問させてください。 ■環境------------------------------ ・windowsXP sp2 ・apache1.3.33 C:\Program Files\Apache Group\Apache  現在の状態:html表示可能。httpd.confを変更 ・perl5.6.1 c:\perl  現在の状態:PPMにてimagemagick,DBI,DBD-MySql(だっけ)をインストールしている ・php5.0.4 c:\php ・mysql4.02 C:\mysql ■httpd.confの変更箇所-------------------------------- 337 Options Indexes FollowSymLinks MultiViews ↓ Options Indexes FollowSymLinks ExecCGI MultiViews 538 #!c:/program files/perl/perl ↓ #!C:/Perl/bin/perl 720以降に追加 AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl 825以降に追加 AddHandler cgi-script .cgi AddHandler cgi-script .pl ■printenv.plの内容-------------------------------- #!C:/Perl/bin/perl ## ## printenv -- demo CGI program which just prints its environment ## print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; } -------------------------------------------------- 上記のような環境で、いまPERLの動作確認を行っています。 http://localhost/cgi-bin/printenv.pl http://localhost/cgi-bin/printenv.pl PLファイルを指定しても実行されず、ダウンロードされてしまいます。 cgiに拡張子を変えても同じでした。 エラーというわけでもない為、エラーログにも何もかかれません。 何が問題なのでしょうか?

    • ベストアンサー
    • CGI
  • CGIのダウンロードで

    掲示板などのCGIをダウンロードしようと思ってます。 CGIをダウンロードした後、Perlのパスをテキストエディターで変更して、その後、FTPでダウンロードしたファイルをそのままアップロードした後に詳しい詳細を変更すれば問題なく動きますか? また、注意すべき点などはありませんか? 因みにPerlのバージョンは5.006で、FTPソフトはFFTPを使ってます。 初心者ですから、どうぞ宜しくお願いします。

  • OSXでcgi

    OSXでperlで作ったcgiを動かしたいと思い色々といじってるのですが全く動きません。 apacheのhttpd.confの設定で AccessFileName .htaccess AddHandler cgi-script .cgi AddHandler cgi-script .pl についてはコメントをはずして使えるようにして Perlのパスも#!/usr/bin/perlとしてsiteフォルダとcgiを置いてるディレクトリに.htaccessを下のように記述して作り AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ パーミッション設定をちゃんとしてあげてるのですがブラウザからアクセスするとForBiddenとでてしっかりと設定してるはずのパーミッション設定が間違ってますと言われてしまいます。 OSXでcgiを動かすには他にももっと色々と設定しなければダメなんでしょうか?

    • ベストアンサー
    • Mac
  • 'cgi-lib.pl'などのファイルの位置は?

    Perlの基本的な質問ですが、cgi-lib.plやjcode.plは どのディレクトリに入れれば自然でしょうか? 私はLinuxとWindowsの両方にPerl5.6を入れておりまして、今までは相対パスによって、スクリプトの近くに置いていましたが、ディレクトリ(フォルダ)が変わるごとに設定しなおしで面倒になってきました。 WEBでもレンタルサーバーなど利用したことは無いんですが、このような基本ライブラリは、require 'cgi-lib.pl';で呼び出して?いると思いますが、 しかるべき位置にこのファイルが無いとだめだと思います。ご教授ください。

    • ベストアンサー
    • Perl
  • フリーCGI「かばの遊べるCGI」の「アポイントメント」設置時エラー

    はじめまして。CGIを配布されているサイトの管理人様へメールも届かないため、大変恐れ入りますが以下お尋ねさせていただきます。 「かばの遊べるCGI」の「アポイントメント」CGI 2サイトでバージョン違いを配布されております。 それぞれを設置、入力後に「予約」ボタンを押したとき以下エラーが出ます。 http://inre0002.hp.infoseek.co.jp/appoint.html(以下1とする) 「2009/5/15のデータが開けません」とエラー http://www.ru-ru.com/kabasan1.html(以下2とする) 「data/2009_5_15.datが開けません」とエラー ●パーミッション cgi-bin/ ├-- lib/ | ├-- jcode.pl | ├-- cgi-lib.pl | └-- kabalib.pl └-- appoint (755)/    ├-- data (777)/ →空フォルダを作成    ├-- appmedic.cgi (755)    ├-- appment.cgi (755)    ├-- appimode.cgi (755)   ├-- include.pl    └-- *.gif サイトで指定してあるファイルをDL jcode.pl 2.13 2.11 (ともに試したが同じ) cgi-lib.pl 2.18 1.14 (同上) ●やってみたこと kabalib.pl修正ファイルを試す http://inre0002.hp.infoseek.co.jp/filelock.html 1の場合 Ver.1.20 data/2009_5_15.datが開けません Ver.1.20b エラーは出ないが予約が反映されない Ver.1.21 data/2009_5_15.datが開けません 2の場合 Ver.1.20 data/2009_5_15.datが開けません Ver.1.20b エラーは出ないが予約が反映されない Ver.1.21 data/2009_5_15.datが開けません ●perlへのパス /usr/bin/perl /usr/local/bin/perl いずれでも動くサーバ(両方試しましたが同じ) land.to http://land.to/newshiyou.php xrea http://www.xrea.com/?action=spec ●使用テキストエディタ EmEditor 足りない情報がありましたらお尋ねくださると幸いです。 以上よろしくお願いいたします。

  • apache1.3とperlでCGI

    超初心者です。 windows XPでapache1.3 と active perl 5.1.2をインストールして、 CGIを動作させたいと考えています。 http://localhostを入力してapacheの起動画面は表示されていること を確認しました。 その後httpdconfに下記を追加しました。 AddHandler cgi-script .cgi .pl AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl <Directory "C:/Program Files/Apache Group/Apache/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> C:\Program Files\Apache Group\Apache\cgi-binに既存で存在する printenv.plを実行しようとするとファイルのダウンロードの画面が出てきて 実行されません。printenv.plは下記のようにperl.exeへのパスだけ変更しました。 #! C:/Perl/bin/perl ## ## printenv -- demo CGI program which just prints its environment ## print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; } どうすればCGIが実行できるようになるのでしょうか? ご教授ください。よろしくお願い致します。

    • ベストアンサー
    • CGI