0

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

我在后端有系统(白名单与黑名单),但现在我需要找到一种方法从调用中获取 URL。

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

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

任何想法如何获取 url,而无需开发人员将 url 实际编码为调用 url?

谢谢

4

1 回答 1

0

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

但是,我不推荐这种实现方式。您应该使用 API 密钥。这些就像使用您的 API 为客户提供的密码。只有拥有 API 密钥的人才能访问您的 API。同时,当他们的服务器更改 IP 地址时,他们仍然能够访问您的 API。

于 2012-09-17T08:55:23.590 回答