php – 清理用户提供的file_get_contents的URL

我想使用file_get_contents来实现代理,这样我就可以进行跨域
AJAX请求.

查询字符串将用于向file_get_contents提供URL.现在问题是人们可以使用查询字符串来读取服务器上的本地文件.我不想要这个.有人可以给我一个函数来清理查询字符串,以便只接受URL而不是本地文件,即:

>?url = http://google.com.au – 好的
>?url =./ passwords.txt – 不行

最佳答案

$url = filter_var($_GET['url'], FILTER_SANITIZE_URL);

要么

if($_GET['url'] === filter_var($_GET['url'], FILTER_VALIDATE_URL)) {
    ... your stuff here ...
}
点赞