url取得リクエストからロードする(ただcss,js
)Webページを作成しました。include
でこれまでに行っていますが、public_html
ではないファイルをハッカーに含めることができるので危険です。file_get_contents
でこれを試してみました。私はそれが可能であると聞いたので、私はハッカーがPHPファイルを読むのを手伝ってほしくないと私はfile_get_contents
と聞いたので、実際に私はfile_get_content
sが危険であると聞いたので、file_get_contentsでphpファイルを読むことは可能ですか?
-2
A
答えて
0
file_get_contents()
は、ユーザー指定のデータをパラメータとして使用して出力を印刷すると危険です。悪質なユーザは、例えば、 /etc/passwd
を入力すると、すべてのサーバーのユーザー名を読み取ることができます。または、名前に許可されたパス(たとえば "../../etc/passwd")を付けてもファイルにアクセスするにはファイル名の一部として '..'を使用できます。
ファイルシステムの予想される部分にファイル名やパスがあるなど、ユーザーが指定した値の有効性をチェックして、ユーザーがアクセスするファイルのみにアクセスするようにしてください。 PHPには、相対パス(またはシンボリックリンクを含むパス)を 'real'にする関数があります:realpath()。
パスを '本当に'作成した後は、パスがファイルシステムの予期した部分にあるかどうかを確認してから、安全にfile_get_contents()
に使用することができます。
$wanted = $_GET['path'];
$real = realpath('/var/www/user/accessible/' . $wanted);
if (strpos($real, '/var/www/user/accessible/') === 0) {
echo file_get_contents($real);
} else {
throw new Exception('not allowed to access this file');
}
関連する問題
- 1. PHPで大きなxlsxファイルを読むことは可能ですか?
- 2. AngularJSでXML RSSを読むことは可能ですか?
- 3. アンドロイドモニターでスロッグを読むことは可能ですか?
- 4. PHPで.TXTファイルを読むことはできますか?
- 5. openFileInputを使って3gpファイルを読み込むことは可能ですか?
- 6. Luaを使って "後方に"ファイルを読むことは可能ですか?
- 7. クロスドメインクッキーを読むことは可能ですか?
- 8. MimeKit。マルチパート/関連コンテンツを読むことは可能ですか?
- 9. (Java)Internet Explorerのフォームデータを読むことは可能ですか?
- 10. PythonをPHPに埋め込むことは可能ですか?
- 11. 、speexファイルを埋め込むことは可能ですか?
- 12. file_get_contents( "php:// input")でSQLインジェクションが可能です。または取得と投稿だけで可能ですか?
- 13. file_get_contentsは既存の読み取り可能なファイルでfalseを返します
- 14. PerlでConfig :: Generalを使って__DATA__を読むことは可能ですか?
- 15. ローカルで60枚の画像を読み込むことは可能ですか?
- 16. Visual Studio 2013でNuget V3フィードを読み込むことは可能ですか
- 17. JMX経由でクラス情報を読み込むことは可能ですか?
- 18. フラスコで直接ブートストラップモーダルを読み込むことは可能ですか?
- 19. shopifyのスクリプトタグ経由でブートストラップを読み込むことは可能ですか
- 20. この一見混乱したCSVファイルをC#で読むことは可能ですか?
- 21. phpファイルで読む
- 22. ブラウザからのセッション、外部アプリケーションで読むことが可能
- 23. カスタムロケーションからZK 7のテーマジャーダイナミクスを読み込むことは可能ですか?
- 24. 特定のテキストブロックを読むことが可能です
- 25. ログインサービスはphpファイルを読むことができません
- 26. リダイレクトする前にSTDOUTを読むことは可能ですか?
- 27. HiveデータをVoraに読み込むことは可能ですか?
- 28. エラーメッセージのテキストを動的に読み込むことは可能ですか?
- 29. Symfony:異なるparameters.ymlを読み込むことは可能ですか?
- 30. RealmオブジェクトをメインUIスレッドに読み込むことは可能ですか?
権限が与えられている限り、**任意の**ファイルを 'file_get_contents'で読むことができます。ホワイトリストを使用して、要求されたファイルと比較して、読み込みたいファイルだけが外に出ていることを確認する必要があります。 –