• ベストアンサー

同一サーバからだと他人に見られる可能性がある???

以前、どこかのHPで同一サーバだとCGIなどのファイル?ファイル名、サーバにアップしていないファイル名を見られてしまう可能性があると読んだのですが本当でしょうか? 絶対にありえないことだと思う(レンタルサーバのため信用している)のですが気になったので本当のところを教えていただけないでしょうか? 宜しくお願い致します。

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

  • ベストアンサー
回答No.10

可能性としては相当希少ですが・・・ ・OSのセキュリティーホールとsuexecのサポート範囲外で、外部からスクリプトが実行される。 例えば、こんな例です。 ----- 同じサーバーの住人が、アップローダー掲示板を用いて何らかのスクリプトをアップロードする。 それが、例えば、http://example.com/files/hoge001.jpg にアップされたとします。 そして、OSのセキュリティーホール(uidが不正に書き換えられるCで作られたスクリプト)を用いて、既にわかっているパスである /home/example/public_html/files/hoge001.jpg を実行しようとする。 ----- ただ、このセキュリティーホールが存在するとしたら、rootにもなりえる可能性があるので、そこまで対処するほどでもないとは思いますが、少なくとも . と、public_html相当のディレクトリは 701、外部から見ることのない大事なデータのディレクトリは、700にしておいたほうがベストです。 #その前に、OS側でセキュリティーホールが改善されるはずです。 ちなみに、もし、真ん中の数字を0以外の数字にしたら、丸見えになりますので注意して下さい。 (755 とか・・・)

その他の回答 (10)

回答No.11

パーミッションについては#9にて、一応の決着を見たようですので CGIのセキュリティホールについて、ちょっとだけ触れておきます ・検索CGIなどでユーザーからの入力をそのままunixシェルに渡す危険なCGI  =>入力された文字列から少なくとも ; と / は除くべき ・複数掲示板を処理するCGIでlogのfile名自体をチェックせずに受け取り、処理する危険なCGI  =>file名自体ではなく、ログの識別番号(半角英数字)以外は受け取らないようにする sakuraの場合、Suexecで基本的にはセキュリティが高くなっていますが Suexecだと実効IDがユーザーとなるため、上記のような バグのあるCGIがあると実効IDがotherのCGIよりも被害が拡大する可能性があります このあたりに関心がおありならCGIのカテゴリーで改めて、ご質問ください

回答No.9

>sakuraの場合u:gが >tarou:tarou とhoge:hogeではなくて >tarou:*** hoge:*** (***の中は同じグループ名)で >同じサーバのユーザは同じグループ名になってますね、、、 あ、確かに、これだとデフォルトでは見れませんね。(今、実際shellをたたきました) ですが、何らかのアタック(セキュリティーホール等)を少しでも防止するには、701にしておくべきですね。 さくらとは関係ありませんが、某大手レンタルサーバーでは、容易に他人を見ることが可能です。汗

ayu_mi_nic
質問者

お礼

回答いただきありがとうございます。 セキュリティの知識が無いため、できれば、何も触らず、705で使いたいと思っていますが、もし、このまま、705のままである場合、どんなリスクが考えられますか? 今回、実際色々触ってみて、さくらのサーバはかなりセキュリティが強いと感じて少々、過信気味のところがあります。 また、他のサーバ(大手)で、こういったことがあるとは知りませんでした! 他のサーバに引越しするする際は気をつけます。

回答No.8

sakuraの場合u:gが tarou:tarou とhoge:hogeではなくて tarou:*** hoge:*** (***の中は同じグループ名)で 同じサーバのユーザは同じグループ名になってますね、、、 **質問者さんに補足要求です tarou と hoge と言うIDをお持ちと仮定して /home/tarou/ を701にして  (telnetでログインし chmod 701 . と打つ) /home/hoge/ は705のままで /home/tarou/www/ と/home/hoge/www/の両方に #! /usr/bin/perl print"Content-type: text/html; charset=Shift_JIS\n\n"; print"<html>\n"; print"<body><pre>\n"; print "<h3>ls -al /home/tarou/ の結果</h3>"; print `ls -al /home/tarou/`; print "<HR>\n"; print "<h3>ls -al /home/hoge/ の結果</h3>"; print `ls -al /home/hoge/`; __END__ と言う内容のCGIを設置して、ブラウザで両方のCGIにアクセスしてみてください ls -al /home/tarou/の結果と ls -al /home/hoge/ の 結果の下にfile一覧が表示されなければ705のままでもOKかと思います。 で、試しに/home/hoge/ を 755にしてCGIにアクセスすると 今度はfile一覧が表示されちゃいますよね?

ayu_mi_nic
質問者

お礼

回答いただきありがとうございます。 >tarou:tarou とhoge:hogeではなくて 書いてある意味が、知識不足でいまいち良く分かりません(u:g?)が、FFFTPで見る限り、 ユーザーIDと所有者は一緒になっています。 また、言われた操作を行ってみたところ、705,701では、もう一つのIDの中は閲覧できませんでした。設置ディレクトリは両方とも閲覧可能でした。 また、もう一つのIDを、755にするとどちらからも閲覧できました。 つまり、さくらでは、良く分かりませんが、かなり強力に対策がとってあると思っていいのでしょうかね? パソコンはWindowsしか使ったことが無いのでサーバは良く分かりませんがなんとなく、しっかりしたセキュリティーが入っているような気がしました。

回答No.7

telnet.cgiで進入すると(さくらの場合、スタンダードプラン以降でも普通にtelnet/sshで)こういうふうに見れます。 (同じく、あなたのユーザー名が tarou だとします) (みづらいので、メモ帳とかにコピー&ペーストして、等幅で見てください) exampleさんとhogeさ、tarouんは同じファイル構成をしていると仮定します。 exampleさんはデフォルト状態、hoge、tarouさんは対策をとっていると仮定します。 > ではじまる行は、実際に入力したものと仮定します。 ■/home に移動して、ユーザー一覧を見る Current Directory:/home/tarou/public_html >cd ../.. Current Directory:/home >ls -al drwxr-xr-x abc abc (容量 日付) abc drwxr-xr-x abz abz (容量 日付) abz drwxr-xr-x example example (容量 日付) example drwx-----x hoge hoge (容量 日付) hoge drwx-----x tarou tarou (容量 日付) tarou (など・・沢山でてくる) ■未対策のexampleさんを覗く Current Directory:/home >cd example Current Directory:/home/example >ls -al drwxr-xr-x example example (容量 日付) data drwxr-xr-x example example (容量 日付) public_html Current Directory:/home/example >ls -al data -rw-r--r-- example example (容量 日付) cart.dat Current Directory:/home/example >cat data/cart.dat 〒100-0000 東京都hogehoge区hoge1-2-3 ほげ 太郎 17000 チケット 〒100-0000 東京都example区example1-2-3 さんぷる 花子 17000 チケット (覗けますよね) ■対策済みのhogeさんを覗く Current Directory:/home/example >cd ../hoge Current Directory:/home/hoge >ls -al ls: hoge: Permission denied Current Directory:/home/hoge >ls data ls: : Permission denied Current Directory:/home/hoge >cat data/cart.dat cat: data/cart.dat : Permission denied ■対策済みの自分自身を見る Current Directory:/home/hoge >cd ../tarou (もしくは cd ~) Current Directory:/home/tarou >ls -al drwx------ tarou tarou (容量 日付) data drwx-----x tarou tarou (容量 日付) public_html Current Directory:/home/tarou >ls data -rw------- tarou tarou (容量 日付) cart.dat Current Directory:/home/tarou >cat data/cart.dat 〒100-0000 東京都hogehoge区hoge1-2-3 ほげ 太郎 17000 チケット 〒100-0000 東京都example区example1-2-3 さんぷる 花子 17000 チケット (自分自身のだから見えてあたりまえ) 参考までに、 drwxr-xr-x - ディレクトリのパーミッション755 drwx-----x - ディレクトリのパーミッション701 drwx------ - ディレクトリのパーミッション700 -rw-r--r-- - ファイルのパーミッション644 -rw------- - ファイルのパーミッション600 1234567890 それぞれの意味は 1文字目のd - ディレクトリであるか? 2~4文字目 - 自分自身 (r=読み込み可 w=書き込み可 x=ディレクトリなら侵入可、ファイルなら実行可) 5~7文字目 - グループ 8~10文字目 - その他のユーザー ブラウザからくるユーザーは、基本的にその他のユーザーですので、その他に対する権限はそれなりに与えてあげないといけないファイルもありますが、CGIの場合であれば既に自分の権限で実行されるので、自分自身だけに権限があれば大丈夫なわけです。

参考URL:
http://www2d.biglobe.ne.jp/~gama/cgi/tools.htm
ayu_mi_nic
質問者

補足

回答いただきありがとうございます。 同じサーバに2つIDがあるので試しに見れるかどうかを確認してみたのですが無理だと思います。 (設定は、デフォルトのままです) /homeまで移動して、 cd hoge(今telnet.cgiを使っているのとは別のID名) を実行すると、 Curr Dir:/home >cd hoge cd hoge:not success. Curr Dir:/home となります。 また、試しにhogeのパーミッションを777に設定してみたところ、 Curr Dir:/home >cd hoge Curr Dir:/home/hoge となり、ディレクトリの中に入ることができるようです。 つまり、意図的に自分でパーミッションの設定を低くしない限りは、さくら側で特殊な対策をしている?ため見られる心配は無いと思うのですがいかがでしょうかね? 因みに、デフォルトでは、705となっています。

回答No.6

>つまり、さくらの共用サーバでは、共用サーバのユーザが >CGIを使うことで見られてしまうということでしょうか? いや、だからそれはymdaさんも書かれているように、、、 例えばあなたのユーザー名がtarouだとします /home/ が755   (今、確認しましたがsakuraはad.jp=法人向け でも ne.jp=個人向けでもこうなっています。  /home/自体の所有者は運営側なのでパーミッションの変更出来ません) /home/tarou/ は初期状態で705ですが701に変更してください そうすれば、他のユーザーからはtarouというユーザーディレクトリが存在する事は判りますが /home/tarou/ の中にどういうfileがあるかは判りません /home/tarou/www/ や、それ以下のディレクトリも701にして下さい。 あとはymdaさんが#3で詳しく書かれているとおりにすればOKです。

回答No.5

補足の回答のみします。 多くのレンタルサーバーのデフォルト設定では、見ることができます。 さくらの共用サーバーのデフォルト設定も同様です。 ですが、ここの回答にあるパーミッションを設定することで どのような方法であろうとサーバー管理者以外は一切見ることができます。 #ちなみに、個人情報開示になるので提示しませんが、  私が昔立ち上げたレンタルサーバー業者は、可能な限り  安全なパーミッションになるようになっていたはずですが、今現在はわかりません。

回答No.4

すみません、私の書いた#2も一部ミスが有りました >Suexecで無い場合はcgiやディレクトリを少なくとも705にしないと動きませんが 正しくは: Suexecで無い場合は .cgiは705 ディレクトリは701 でOKです。 ディレクトリ内のfileを検索するようなCGIを置くのなら ディレクトリを705にする必要がありますが (cgiの中ににfile名のリストを記述していれば別ですが) 同様に他のユーザーのcgiからもディレクトリ内検索されてしまうので セキュリティは低下しますね

ayu_mi_nic
質問者

補足

回答いただきありがとうございます。 Suexecなどかなり専門的になって理解できていないのですが、 つまり、さくらの共用サーバでは、共用サーバのユーザが CGIを使うことで見られてしまうということでしょうか? そして、共用サーバのメンバーの、どなたかが、Telnet.cgiを設置や、放置していると 外部からも見られてしまう可能性があるということでしょうか? 今一理解できていませんので、ご返答いただけると幸いです。 お手数ですが、宜しくお願い致します。

回答No.3

#1です。 意図的に一般的な設定にするために、705とセキュリティーを落としている可能性もあります。 ちなみに、本当にプライベートな情報を安全に見れないようにするには、 ・BASIC認証のパスワードを保存する場合 /home/user/public_html/.htaccess パーミッション604 (である必要があります) /home/user/private パーミッション701 /home/user/private/.htpassword(適時ファイル名を変更して下さい) パーミッション604(である必要があります) ・更に掲示板を安全にする /home/user/public_html/bbs/bbs.cgi (ただのwrapper) perlの場合、 #!/usr/bin/perl require "/home/user/bbs1/ast/bbsabcdefg.cgi"; の2行のみで パーミッション 700 /home/user/bbs1 パーミッション 700 /home/user/bbs1/ast パーミッション 700 /home/user/bbs/ast/bbsabcdefg.cgi パーミッション 600 (requireで呼び出されるものは実行属性が不要) (設定ファイル等は絶対パスにする必要があります) /home/user/bbs/ast/abcdefgh.cgi パーミッション 600 ちなみに、世の中には、telnet.cgiってものが存在するので、悪用すれば簡単に他人の領域を見ようと思えば見れてしまいますが、自己でしっかりパーミッションを徹底管理することで、安全なWeb領域を構築することができるかと思います。 参考までに、Webサーバーからの情報流出の1/3は、パーミッション問題であると過言ではないようです。 なお >/home/ >まで移動すると・・・・ これだけは回避できませんが、セキュリティー的には特に問題ないはずです。 #そのサーバーに、xxx.sakura.ne.jpってユーザーがいるんだなってバレル程度程度で、それ以上の情報が漏れることはありません。 #2さんへ・・ 確かに、.cgiは700で動きますね。こちらのミスです。

ayu_mi_nic
質問者

補足

回答いただきありがとうございます。 Suexecなどかなり専門的になって理解できていないのですが、 つまり、さくらの共用サーバでは、共用サーバのユーザが CGIを使うことで見られてしまうということでしょうか? そして、共用サーバのメンバーの、どなたかが、Telnet.cgiを設置や、放置していると 外部からも見られてしまう可能性があるということでしょうか? 今一理解できていませんので、ご返答いただけると幸いです。 お手数ですが、宜しくお願い致します。

回答No.2

いや、Suexecなら .cgiのパーミッションは700で動きます。 他のパーミッションは#1さんのいわれる通り 確認環境 http://www.sakura.ne.jp/rs/http://www.sakura.ad.jp/services/rental/vd/ のレンタルサーバ および自宅のfc5+apache2.2.0 とVine3.2+Apache2.0.55 で、最近はレンタルサーバだとSuexecの方が多いんじゃないかと思います。 Suexecで無い場合はcgiやディレクトリを少なくとも705にしないと動きませんが 755 他のユーザーからFTPやtelnetでも見られる可能性有り 705 他のユーザーがこちらのfile内を閲覧するcgiを使えば見られてしまう >サーバにアップしていないファイル名 それは通常ありえませんが ・サーバーにアップロードしているが他のfileからリンクしていないfile ・サーバーにアップしていないが他のfile内に記述してあるfile名 だと有り得ますね

回答No.1

一般的なレンタルサーバーの設定では、十分に他人から見られる可能性があります。 たとえ、信用あるレンタルサーバーでも、容易に見れてしまうことが結構あります。 しかし、suexec(ユーザー権限実行)対応であれば、以下のように設定してみてください。 例として /home/user ユーザーの一番TOP パーミッション 701 /home/user/public_html 公開ディレクトリ パーミッション 701 /home/user/public_html/index.html 等普通のファイル パーミッション 604 (644でも問題なし) /home/user/public_html/bbs/bbs.cgi 掲示板CGI パーミッション 701 /home/user/public_html/bbs/bbs.dat 掲示板のデータ パーミッション 600 このようにすれば、他人に見られる可能性はほぼ0になります。 suexec(ユーザー権限実行)非対応ですと、CGIwrapperていうのに対応している可能性がありますので、お使いのサーバー管理者に確認しみてください。 もし、このような仕様でないレンタルサーバーの場合、乗り換えたほうがいいかもしれません。 #ただし、C言語のCGIの場合、どんな仕様でも安全にすることがプログラム上で可能です。 >サーバにアップしていないファイル名 サーバーにアップしているファイル名・・ですよね?

ayu_mi_nic
質問者

補足

回答いただきありがとうございます。 私の使っているサーバは、さくらインターネットですが、 /home/ まで移動すると、誰が入っているのかユーザーIDだけは分かりますが、パーミッションは705に設定されており、他人のディレクトリを観覧することは絶対にできない設定になっています。 そのため、どんな方法でもディレクトリ中に入れある、ファイル名も含めてファイルを直接見られる心配は無いと思うのですが、以前調べたサイトでは、簡単に見ることができると書いてあり不安が残ります。ID+さくらのドメインで、検索エンジンなどから突き止めるのではなく、同一サーバに置いてあることで簡単に見れると書いてあり、不安を覚えました。セキュリティのあまいサーバのみにいえることだと思うのですが・・・ 例えば、サーバにプライベートな情報をパーミッション000で置いていたとしてもファイル名だけは外部から見られてしまう可能性が残っているということになってしまいます。これは、信用の置けるレンタルサーバでも同様にいえることなのでしょうか? 正直、さくらやパーミッションの設定をかなり信用していますので、不思議でなりません。 >サーバにアップしていないファイル名 サーバーにアップしているファイル名・・ですよね? その通りです。訂正ありがとうございます。

関連するQ&A

  • 無料レンタルサーバ

    以前までハムスター島という無料のレンタルサーバ 借りてHP作成 アップしてたのですが 他にも良い無料レンタルサーバの情報がないでしょうか 教えて下さい お願い致します

  • 無料レンタルサーバー

    CGI可能な無料レンタルサーバーを探しているのですが、どれも個人の方が運営しているので あまり信用できないのですが、個人ではなくある程度信用のおけるCGI可能な無料レンタルサーバーはないでしょうか?ありましたら回答の方お願いいたします。

  • 各CGIのサーバーに与える負荷は・・・?

    新しく作るHPにcgi掲示板を10個ほど設置したいのですが、サーバーに与える負荷はどのくらいでしょうか? この掲示板は画像などをupしたりする機能の無い一番シンプルな物です。 10個も設置するとチャットcgiなどよりも負荷率はかなり上がってしまうのでしょうか? もし、かなりの負荷のようでしたらレンタルで済まそうと思っているのですが。 あと、このようにcgiを複数設置するサイトを作る際にレンタルサーバーを選ぶポイントなどはありますか? 今のところinfoseekという所を考えているのですが問題ないでしょうか?

    • ベストアンサー
    • CGI
  • cgiの使えないサーバーでの質問です。

    NTT-MEのサーバーをレンタルしているのですが、 自作のcgiが使えません。 (そういうコースを選んでしまったため) そこで、ご質問なんですが、 1・cgiを使わずに、パスワードページを作ることは可能でしょうか? 2・当方とAさんの間で、画像ファイルをやりとりするのに、  どういう方法がありますか?  (当方が、数枚の画像を圧縮後にサーバーにアップし、  Aさんが、パスワード入力後に画像ファイルをダウンロード) 2は、普通にできるような気もしますが・・・

  • 2つのHPを1つのレンタルサーバーで

    レンタルサーバーを借りてホームページを作りました。 しかしもう一つ全く別の内容のHPを作りたいと思い、 レンタルサーバーは大容量で余っているので、2つに分けて使おうかと考えました。 ただ新しく作るHPのアドレスは、当然今までのアドレスにファイル名をつけた長いものになってしまいます。 http://***.***/***/新しいファイル名 普通のHPはトップページは「ファイル名.html」ではなく「index.html」で そのindexファイルは入力しなくてもアクセスできると思います。 そういう面でも見栄えも良くなくあまり使いたくはありません。 もう一つレンタルサーバーを借りれば良いのですが、 今の時点でもほとんど容量を使っていないので、何か方法はないのかと考えた次第です。 広告が付く無料スペースは使いたくありません。 何か方法はありますでしょうか?

  • レンタルサーバを探しています。

    新しくHPを立ち上げたいのでレンタルサーバを探しています。 無料のものなのですがデザインを重視したいので広告をサーバ側が自動で挿入されるのではなく、 ユーザーが任意の場所に挿入できる所を探しています。 ポップアップも考えたのですがやはり見てて気持ちのいい物ではないので。 登録が一時停止しているもの抽選などではなく現在確実にレンタルできるところを教えてください。 どうしても無料のスペースがないというならば、有料も考えています。 現在運営しているHPのサーバがロリポップです。 ロリポップより安くて「できればCGIも」と考えています。 難しいでしょうがどうかよろしくお願いします。

  • 他社のCGIを使える無料HPサーバーはないんでしょうか?

    HPサーバーで、無料なものを探していたですが、他社のCGIを使えるサーバーというのが見つからなくて、質問させていただきました。 CGIのレンタルは、ピーボックスを使おうと思ってます。 他社のCGIが使えて、無料なHPサーバーはないんでしょうか??(>_<)

  • Webサーバの設定で…

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

  • ホームページとサーバーについて質問です。

    ホームページとサーバーについて質問です。 ホームページを作ってネットにアップしたいんですけどよくやり方がわからないので教えてください。 htmlで簡単なものは作っているんですけどアップの仕方がわかりません。    (1)サーバーを借りたいんですけど、無料がいいです。無料で使えるレンタルサーバーがあれば教えてください。できれば「GUI」や「A8」が使えるとこでお願いします。自分はAmazonアフィリをやってます。  (2)そしてそのレンタルサーバーでのhtmlファイルアップの方法と手順を教えてください。FFFTPソフトはあります。  (3)そして無事できたとして、しばらくたってそのレンタルサーバーが終了してしまうことはあるんですか?  (4)最後に自分でサーバーができると聞いたんですけど本当ですか? 自分がサーバーとは大容量のHDDとかを買ってそこに自分のhtmlファイルをアップしていくんですか? できればそのやり方を簡単でいいので説明していただけると辛いです。

  • サーバーからHPをDL

    自分のHPを常にバックアップを取っていたつもりですが、 開いて見るとファイルが少なくっています。 以前、ファイルをCDに送ったときに、 「失われる可能性があります。続行しますか」と出たことがあります。 これはどういう意味でしょうか。 また、もしファイルをなくした場合、 サーバーにアップしているHPを逆にDL出来ると聞いたことがあります。 ご存知の方は、そのソフト名を教えてください。