1

簡単な質問があります。ユーザーがPHPスクリプトにURLを提供し、URLからページを取得して解析し、ユーザーにスニペットを表示します。ここで、URLをサニタイズするか、より適切にエスケープして、file_get_contents()を使用してURLを安全にフェッチできるようにします。

私の簡略化されたコードは次のようになります。

$url = $_POST['url'];
$html = file_get_contents($url);

最初に頭に浮かんだのは、悪意のあるURLをキャッチするために正規表現を使用することですが、それが効率的であるとは思わず、URL全体をエスケープする方がよいと思います。しかし、file_get_contents()関数で使用するためにURLをエスケープするためにどのPHP関数を使用できますか?

4

2 に答える 2

2

http://またはで始まるURLを要求するだけですhttps://

file://幸いなことに、PHPはURLへのリダイレクトに従わないほど賢いです。
ただし、 URLへのリダイレクトに従うため、サーバーが認証なしで内部ftpサーバーにアクセスできないようにすることをお勧めしますftp://

于 2012-04-11T08:11:24.920 に答える
0

そして、正規表現を実行したい場合は、ここを見てください:

Stackoverflow:文字列が有効なURLであるかどうかを確認するための最良の正規表現は何ですか?

于 2012-04-11T08:33:12.773 に答える