• ベストアンサー

PHPとデータベースのセキュリティについて教えてください。

PHPとデータベースのセキュリティについて教えてください。 現状: webarenaのホスティングサービスを使って、phpのファイルからpostgreのデーターベースに接続しています。 phpで作製したファイルの中身: $dbh=pg_connect("host=xxx.arena.ne.jp port=xxx dbname=xx user=xxx.arena.ne.jp password=xxx"); phpのファイルの保存場所とパーミッション: フォルダーは cgi-bin パーミッションは 700 教えていただきたいこと 1) パーミッションが700なのでオーナーしか読み出し実行ができないのではないかと思いましたが ブラウザから実行できました。パーミッションはこれでいいのでしょうか。 2) ファイルの中に下記の記述があります。 $dbh=pg_connect("host=xxx.arena.ne.jp port=xxx dbname=xx user=xxx.arena.ne.jp password=xxx"); パスワードが入っていまして、これを第三者に読み出されないかと心配ですが、いい対策を教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

>ブラウザから実行できました。 ブラウザは実行していません。実行しているのはWebサーバです。 >パスワードが入っていまして、これを第三者に読み出されないかと心配ですが、いい対策を教えてください。 第三者というのは誰を表しているのでしょうか? 誰を当事者(二者)にしているのかよくわからないのですが・・・ 暗号化などを利用してパスワードを読めなくしたところでWebサーバが実行しなければならない限りWebサーバはそのパスワードを知ることができなければなりません。なので、作成者や管理者以外にパスワードを秘匿にすることは基本的に無理です。

miya2003
質問者

お礼

パーミションを理解していませんでした。(汗) ありがとうございました。

miya2003
質問者

補足

早速のご解答ありがとうございます。 ブラウザから実行したという意味は、このファイルのあるアドレスをブラウザのアドレス欄に入力すると、データーベースに接続した結果が表示されたということなんですが。 第三者というのはブラウザからphpのファイル呼び出す人の事をさしているのです。この人がこのphpファイルの中身を読み出し、パスワードを読むことを恐れているのですがこれを防ぐ方法はないのでしょうか。 どうぞよろしくお願いします。

その他の回答 (1)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

1)に関しては、miyaさんが何を不思議に思っているのか意味が分かりませんが、 #No1の > ブラウザから実行したという意味は、このファイルのあ >るアドレスをブラウザのアドレス欄に入力すると、 > データーベースに接続した結果が表示されたということなんですが。 から判断するに、大きな勘違いをされているのだと思います。 これは#No1の答えの繰り返しですが、 ブラウザは実行していません。実行しているのはWebサーバです。 ブラウザはただサーバーにリクエストしただけで、実行したのはあくまでもWebサーバーです。 PHPはWebサーバー権限で実行されています。 じゃあWebサーバーはどのユーザーの権限で動いているでしょうか? そのWebサーバーがUNIX系であれば、root権限で動いているはずですね。 (子プロセスは大抵nobodyですが、親プロセスは違います) それが理解できればご自分の勘違いを理解できると思いますよ(^^; 2)に関しては、気を付ける点は、もしPHPがデバッグをはき出す設定なら、その時にひょっとしたらパスワードなんかもはき出しちゃうかもしれません。 が、しかし現時点で問題ないのであれば、それは考えなくてもいいと思いますよ。

miya2003
質問者

お礼

パーミションを理解していませんでした。(汗) ありがとうございました。

miya2003
質問者

補足

ご回答ありがとうございます。 <PHPはWebサーバー権限で実行されています。> 勘違いしていました。ありがとうございます。 <PHPがデバッグをはき出す設定なら> PHPはデバッグをはきださない設定でしたので大丈夫そうです。

関連するQ&A