2009-08-23 3 views
0

私は良いユーザーがウェブサイトドメイン名http://www.mysite.comを入力したWebサイトで作業しています。PHP、RFI、および物事を安全に保つ

しかし、私はリモートファイルインクルード(RFI)について読んできました。かなり面白いです。 ?page = http://www.mysite.com/index.phpを追加するだけです。私は何らかのタイプのエラー(500)を得ています。 私が同じことをしている場合は、wordpress/PHPを使用している他の人々のサイトもエラーが表示されます。

これはスクリプトが実行されたことを意味するのかどうかわかりませんが、入力をきれいに保つにはどうすればよいですか?私は既にREGEXを使用していますが、ユーザーが任意のウェブサイトを入力してそれに応じて処理できるようにしたいと考えています。私は確かに私のスクリプトのどこにでも重要なセキュリティホールを望んでいません。

東海岸ここボストンでおやすみ[EST]

答えて

1

あなたがmod_security何かのような音を見ているHTTP 500エラー、Apacheのモジュール、生成されます。 mod_securityは、すべての入力をセキュリティルールのセットに対してスキャンします。その1つはおそらくRFIをチェックしています。これは防衛の第一線です。

RFIから保護するために、他にもできることがいくつかあります。まず、PHP 5.2.0以来、allow_url_includeというオプションがあります。 falseに設定すると、ファイルがURLに含まれるたびにPHPがエラーをスローします。ほとんどの人はこの設定をfalseに設定したいと思うでしょう。

さらに、あなたの入力を消毒しています。実際には正規表現を使うのと同じように、さまざまな方法がありますが、filter extensionを見ることもできます。厳密に厳密になるようにしてください。../../に誰かがこっそり入って、ファイル階層内でレベルが1つまたは2つ上がっていることを許可したくありません。

セキュリティファイルアクセスの最も安全な、しかし時には非常に実用的でない方法は、含まれることを許可される正確なファイルのホワイトリストを使用することです。

関連する問題