プロが教える店舗&オフィスのセキュリティ対策術

参考のためにサイトのphpソースコードを表示する方法を知りたいです。

ある参考書にこのような解説がありました。
『$con = mysql_connect("localhost","sampleID","samplepass");
のようにphp内に直接ユーザ名とパスワードを記載することはいけません。
なぜなら、phpファイルはブラウザからアクセスして見ることができるからです。
対策として、ユーザ名とパスワードを記載したiniファイルを作り、
それをドキュメントルートよりも上位の場所に置くと良いでしょう。』

ブラウザからアクセスして見ることができる、とありますが、
見ることが出来るのは開発担当者達ということでしょうか。

SQLiteのデータベースも同様にドキュメントルートよりも上位の場所に保存
とあるサイトで解説していましたが、専用のソフトとかありますか?

A 回答 (3件)

サーバの環境設定や「.htaccess」ファイル等のようなもので間違った設定を行い、


***.phpファイルにアクセスされた場合にPHPとして動作せず
他のHTMLファイルやテキストファイルのようにダウンロード表示されてしまう可能性は多分にあります。
SQLiteのファイルやCSVなんかも、パーミッション等々、正しく設定していなかった場合、簡単にアクセスされてしまいます。

その為、少なくとも、ドキュメントルートより上に直接アクセスされたくないファイルなどを置いて、
require_once, require, include, include_once等によりPHPから参照したりするのが一般的、という事ではないでしょうか。
    • good
    • 0
この回答へのお礼

よくわかりました。ありがとうございます。
phpのソースを意図的に見る方法というのはないのでしょうか。

お礼日時:2012/05/24 00:36

> なぜなら、phpファイルはブラウザからアクセスして見ることができるからです。


設定に不備があった際に、見えてしまうことがあります。
この著者はずいぶん雑な書き方をしていると思います。

ただし、気をつければ絶対にソースは見えないかというと、結構微妙です。
例えば、

・ホスティングサーバにある日問題が起き、数時間ソースが見える状態になった
・自宅サーバのapt/yum自動アップデートでphp/Apache設定に障害が生じ、ソースが見える状態になった

などなど、思いもよらない原因でソースが見えてしまうことはあります。
そういった意味で、ドキュメントルートより上位に置くのは良いことです。

# 余談ですが、昔MixiもPerlのソースが丸見えになったことがありました。


> SQLiteのデータベースも同様にドキュメントルートよりも上位の場所に保存
> とあるサイトで解説していましたが、専用のソフトとかありますか?

SQLiteのデータベースはただのファイルですから、好きな場所に置けばいいです。
    • good
    • 0
この回答へのお礼

私の書き方が悪かったのですが、「専用のソフトとかありますか?」は、
phpを見るためのソフトのことだったのですが、
サーバー側で処理されている以上無理そうですね。
諦めます。ありがとうございました。

お礼日時:2012/05/25 00:53

> phpのソースを意図的に見る方法というのはないのでしょうか。



ブラウザでそのURLを開いた時点で、PHPが動作した結果が表示されているのであれば、すくなくともブラウザから見る事はできません。

確かにやらしちゃった場合は、ソースそのものが表示される事もあるでしょうけど・・・
普通に考えてあり得ないと思います。

サーバー構成になんらかの穴を作ってしまう事もあるので、そこから漏れる事はあるかもしれません。
まぁそんな時の為に、ソースに直接書くなというのは分からなくもないです。

正直そこまで言いきってる解説書はどうかと思いますが・・・
    • good
    • 0
この回答へのお礼

ブラウザからは何らかのミスによるもの以外では見れないんですね。
ありがとうございます。

お礼日時:2012/05/25 00:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!