2016-04-26 10 views
2

パブリックユーザは、public_htmlフォルダ内のPHPファイルの内容にどのようにアクセスできますか?彼らがアドレスを知っていれば、www.mysite.com/router.phpはそのファイルをダウンロードすることが可能ですか?パブリックユーザはどのようにしてPHPファイルにアクセスできますか?

データベースキーのようなものをPHPファイルに保存するのが安全かどうかを理解しようとしています。

+3

サイトのパブリックフォルダ内のスクリプトのPHPソースコードをダウンロードすることはできません。例外は次のようになります:Apache mod_phpは改行し、PHPをtext/plainまたはdownloadsとして提供し始めます。サイト上の任意の種類の脆弱性により、任意のファイルをダウンロードできるようになります。あなたが非常に安全であるようにするには、データベースの信用とキーをインクルードファイルのドキュメントルート(public_html)の下に置きます。 – drew010

+0

ほとんどすべてのPHPファイルをWebサーバーの公開ルートの外側に置き、間違ってプレーンテキストとして提供することは避けてください(上記のdrew010のように)。 – Marty

+0

あなたが言うと、彼らは何らかの方法でソースファイルをダウンロードすることはできません。public_htmlの外側に置くことについてもっと安全なものは何ですか? – user3822370

答えて

3

これに正しく答えるには、本を書く必要があります。しかし、簡単に:

あなたのサーバーが正しく構成されていて、PHPコードにバグがない場合、PHPファイルの内容には公開されません。

設定が不十分な場合やバグがある場合は、攻撃者がコンテンツを利用できる可能性があります。

一部の開発者は、public_htmlフォルダの外にどこかの設定を移動しますが、一般的なバグやセキュリティ上の欠陥を何ら保護するものではありません。

代わりに、ファイルの内容にアクセスできる人は誰でもファイルを操作できないようにしてください。たとえば、ユーザーのパスワードを適切にソルトおよびハッシュし、機密データ(クレジットカードなど)をサーバー上のどこにも格納されていないパスワードで暗号化し、データベースサーバーに良好なファイアウォールを設定して、ログイン資格情報が許可されていないことを確認しますデータベースへのアクセス。ここで

+1

それから、広範囲に投票してください。 –

+1

@ダゴンそれほど広いわけではありませんが、なぜ私は同じように広い答えを与えているのか説明していました。 –

+1

"これに正しく答えるには本を書く必要があります。"あなたの心を作りましょう –

1

wordpress自体がDB接続情報in a php fileを保存すると、適切に設定されたWebサーバーはプレーンテキストのものとしてそのファイルを提供しないというかなり良い保証です。

+1

私は使用することを躊躇しますWordPressは正しく動作する方法の例です:-P(あなたが言ったことは何も無効です)。 – Marty

+0

私は、PHPファイル自体に機密性の高い証明書を保管することは非常に安全であり、それらを漏らすリスクはかなり低いといういくつかの証拠を示しています。私はWordPressがベストプラクティスのゴールドスタンダードだと言っているわけではありませんが、入手可能なウェブサイトの約25%が後ろだとすれば、悪用されやすいセキュリティ違反を露呈しないと考えることができます –

+2

WordPressセキュリティ違反ほぼ毎日の出現、 –

0

は、誰かがHTTP経由でPHPファイルを要求したときに何が起こるかを理解するのに役立つかもしれない非常にラフな説明です:

+--------+ 1. +--------+ 2. +-----+ 
|  | ===> |  | ===> |  | 
| Client |  | Apache |   | PHP | 
|  | <=== |  | <=== |  | 
+--------+ 4. +--------+  3. +-----+ 
  1. クライアントPHPファイル用のWebサーバーを要求します。
  2. Apache(または選択したWebサーバー)は、要求がPHPファイル用であることを認識し、その要求をPHPインタープリタに渡します。
  3. インタープリタはPHPコードの実行結果をApacheに返します。
  4. Apacheは結果をクライアントに転送します。

あなたのWebサーバーはHTTP経由で入ってくるすべてのトラフィックを処理するので、PHPインタープリタにすべての要求を渡すように正しく設定されていると仮定すると、 PHPファイル。

PHPがインストールされていないか、Apacheが正しく設定されておらず、PHPファイルの処理方法がわからない場合、それらのファイルはプレーンテキストとして提供されます。その場合、内容は公開されます存在する)。

0

あなたは何かをPHPファイルに保存できます。パスワードやdb資格情報をエコーし​​ないようにしてください。 $password, $db_hostのようにファイル内で定義するものはすべてプライベートです。

関連する問題