2012-01-05 11 views
1

私はリソースとしてリモートPHPファイルをインクルードしようとしていますが、少し問題があります。私はphp.iniファイルに入り、allow_url_fopenONに設定しました。私も設定allow_url_includeを探しましたが、それはファイルにはありませんでした、私はそれをphp.iniファイルに追加し、またonに設定しました。リソースとしてリモートPHPファイルを含める

私は

include ('http://somewebsite.com/lib/somescript.php'); 

サーバー/ PHPがというメッセージを出してくれる使用することを含むしようとした場合:

URLファイル・アクセスはサーバーの構成

Iで無効になっています

は、ストリームをオープンに失敗しました:もし適切なラッパーは何とか何とか何とか中に見つかりませんでした

私は同じ結果をacomplishしようとしていますseconed方法はfopenを使用しているが、私は単にファイルの内容を取得しています、ではないthatsの必要なものリモートスクリプトをexecutabel rescourceとして表示するには、ローカルスクリプトが必要です。

$myscript = fopen("http://someotherwebsite/lib/my_script.php", "r"); 
$incmyscript= fread($myscript , 9999); 
fclose($myscript); 
// include in the contents of my_script.php  
echo $incmyscript; 

何か間違っている必要がありますか?私は変数$ incmyscriptをエコーするのは間違っていることを知っていますが、私はコードに配置する方法を考えることはできません。私はfopenが私が望むものを得る最良の最良の方法であるかどうかはわかりません。

アイデア?

+0

relavent行をphp.iniに含めてください。間違って設定することはできますか? – ManseUK

+0

allow_url_fopen = onallow_url_include = on – user1132323

答えて

0
代わりにこれを使用することができ、エコーの

eval($incmyscript); 

をしかし、注意してください、これは非常に悪い習慣です! ここをクリックしてください:http://php.net/manual/en/function.eval.php

+1

クロスサイトリクエストで 'eval'を使うことは決してお勧めしません。 **これまで**。 –

1

echoの代わりにevalを使用できます。

HTMLをインクルードするだけではなく、他のサーバーからPHPコードを実行する場合にのみこれを行います。

実際に他のサーバーからPHPコードを実行したい場合でも、man-in-the-middleはサーバー上で任意のPHPコードを実行する可能性があります。したがって、HTTPSを使用したり、リモートファイルをまったく含まないようにしてください。

例:リモートスクリプトを信頼できる場合

$myscript = fopen("https://someotherwebsite/lib/my_script.php", "r"); 
$incmyscript= fread($myscript , 9999); 
fclose($myscript); 
$incmyscript); 
0

、あなたはeval呼び出すことができます。

eval ($incmyscript); 
0
  1. あなたはそれが出力だ含めるしようとしているPHPをサポートするサーバによって提供http://somewebsite.com/lib/somescript.php場合は、コード自体ではありません!それ以外の場合は間違っていて、セキュリティホールと見なすことができます!
  2. あなたがやっていることは、大きなセキュリティホールを開くことです!
+1

相手側を信頼しているとセキュリティホールではありません(実際には、トランスポートセキュリティが使用されていないためです)。 –

+1

あなたは悪いところにいるよりも、あなたがハックしたり、壊れたり、怒ったりするまで、相手を信頼することができます...あなたはそれを信頼するだけでなく、この点から信頼します。 –

+0

誰かが 'somewebsite.com'は同じウェブマスターによって運営されていないと伝えますか? –

0

リモートサーバーが.phpファイルを処理するように設定されている場合、そのファイルを取得することはできません。サーバーはPHPを処理し、出力を返します。遠隔地のPHPソースを入手できれば、ハッカーはコードを掴んで脆弱性を探しやすくなります。

+0

あなたのコードにアクセスできるクラッカーがそれを悪用できないようにコードを書くべきです。 –

+0

ありがとう、私は私の上司に別のルートに行くように説得するつもりだと思う。 – user1132323

1

あなたが取得しているメッセージ:

URL file-access is disabled in the server configuration 

はあなたのphp.iniのallow_url_include設定がオフに設定されていることを示します。このオプションを有効にすると、リモートファイルのインクルードが可能になりますが、他のサイトが侵害されるとセキュリティリスクが非常に高くなります(ハッカーがサイトに簡単にリモートコードを挿入する可能性があります)。

+0

これは攻撃が(人身売買のセキュリティが使用されないので)攻撃者が中間者攻撃を行う可能性がある場合にも、セキュリティホールです。 –

関連する問題