为 file_get_contents 清理用户提供的 URL

Lui*_*uis 5 php proxy file-get-contents

我想用file_get_contents一个代理来实现跨域 AJAX 请求。

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

  • ?url=http://google.com.au - 好的

  • ?url=./passwords.txt - 不好

Ser*_*Oan 3

$url = filter_var($_GET['url'], FILTER_SANITIZE_URL);
Run Code Online (Sandbox Code Playgroud)

或者

if($_GET['url'] === filter_var($_GET['url'], FILTER_VALIDATE_URL)) {
    ... your stuff here ...
}
Run Code Online (Sandbox Code Playgroud)