1

という PHP スクリプトがconstants.phpあります。そこには、MySQL 情報などの貴重なデータがたくさんあります。

私のマシンの外部でそのスクリプトにアクセスすることは可能ですか? 以下を使用して、言ってみましょう:include http://www.fakewebsite.com/config/constants.php

4

4 に答える 4

2

ドキュメントを読みましょう:

PHP で「URL fopen ラッパー」が有効になっている場合 (デフォルト設定では)、URL を使用して (HTTP またはその他のサポートされているラッパー経由で) 含めるファイルを指定できます。プロトコルのリストについては、「サポートされているプロトコルとラッパー」を参照してください)。ローカル パス名の代わりに。ターゲット サーバーがターゲット ファイルを PHP コードとして解釈する場合、HTTP GET で使用される URL 要求文字列を使用して、変数をインクルード ファイルに渡すことができます。これは厳密には、ファイルをインクルードして親ファイルの変数スコープを継承させることと同じではありません。スクリプトは実際にリモート サーバーで実行され、その結果がローカル スクリプトに組み込まれます。

そのため、実際に外部ファイルを読み込むことができます (管理者が許可している場合)。しかし、それはあなたの場合に役立つでしょうか?Webブラウザーhttp://www.fakewebsite.com/config/constants.phpで開き、[ソースの表示] メニューを開きます。そこに何が表示されていても、それは PHP スクリプトが表示するものです (ほとんどの場合、空白のページ)。

最後になりましたが、リモート サーバーがファイルを実行しないように構成されている、PHP コードを生成する PHP スクリプトが含まれていると仮定すると、貴重で機密性の高いデータをすべてインターネットに投稿する必要があるでしょうか?*.php

于 2013-02-04T15:38:15.550 に答える
2

はい、いいえ。

はい: ファイルの出力にアクセスできますconstants.php(ただし、空白になる可能性が最も高い)。

いいえ: 彼らはあなたの変数にアクセスできません。PHP が解析される前にのみ、これらにアクセスできます。

于 2013-02-04T15:28:24.033 に答える
1

URL が公開されている場合は、スクリプトを含め、誰でも URL から読み取ることができます。

ただし、ここで重要なのは、ファイル自体ではなく、の出力にアクセスすることです。constants.phpWeb ブラウザーからファイルにアクセスした場合とまったく同じ出力が得られます。

彼らができないことは、URL を呼び出して実際の PHP コードを含めることです。URL は PHP ファイルへの直接接続ではありません。これは Web サーバーへの接続です。その後、Web サーバーは PHP ファイルを処理し、出力を提供します。Web サーバーが出力を送信する前に PHP ファイルを処理している限り、PHP コードは安全です。URLからは見れません。

他にも方法はあるかもしれませんが、そうではありません。

于 2013-02-04T15:41:19.263 に答える
0

はい、スクリプトにアクセスできる限り、独自のスクリプトに含めることができます。

于 2013-02-04T15:24:22.043 に答える