1

我有一个简单的问题。用户向我的 PHP 脚本提供 URL,我从 URL 中获取页面并解析它并向用户显示一些片段。现在我想清理或更好地转义 URL,这样我就可以安全地使用 file_get_contents() 来获取它。

我的简化代码如下所示:

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

我想到的第一件事是使用正则表达式来捕获邪恶的 URL,但我认为它效率不高,最好是转义整个 URL。但是我可以使用什么 PHP 函数来转义 URL 以在 file_get_contents() 函数中使用?

4

2 回答 2

2

您可以简单地要求 url 以http://or开头https://

幸运的是,PHP 足够聪明,不会跟随重定向到file://url。
但是,它确实会重定向到ftp://url,因此您最好确保您的服务器在未经身份验证的情况下无法访问任何内部 ftp 服务器。

于 2012-04-11T08:11:24.920 回答
0

如果你想做正则表达式,看看这里:

Stackoverflow:检查字符串是否为有效 URL 的最佳正则表达式是什么?

于 2012-04-11T08:33:12.773 回答