从file_get_contents()获取URL

时间:2012-09-17 08:49:56

标签: php api

我正在为一项服务编写API,现在我需要限制一些URL的调用。假设您是用户,并且您选择只有stackoverflow.com可以看到您的信息,或者stackoverflow.com,facebook.com和google.com无法看到您的信息。

我在后端有系统(白色与黑色列表),但现在我需要找到一种从呼叫中获取URL的方法。

是的,有些人会使用curl,这很容易,但是很多人只会使用file_get_contents(),而且这个API有图像输出所以有些人会用

<img src="http://domain.com/api/something.jpg" />

有没有想过如何获取网址,而不让开发人员将网址实际编码为调用网址?

由于

1 个答案:

答案 0 :(得分:0)

检查请求客户端的IP地址($_SERVER['REMOTE_ADDR'])。您可以将允许连接到API的服务器的IP地址列入白名单。对于图像输出,您可以使用$_SERVER['HTTP_REFERER']并确保它来自您已列入白名单的域。

但是,我不建议这样做。您应该使用API​​密钥。这些就像使用您的API给客户的密码。只有拥有API密钥的用户才能访问您的API。同时,当他们的服务器更改IP地址时,他们仍然可以访问您的API。