我有来自外部域的脚本访问我们的服务器上的api脚本,它通过json返回信息。我的问题是,如果有人从他们的网站向我们的网站发送了api脚本的请求,我可以获得请求来自的url/domain吗?如果是的话,我会怎么做?我尝试使用$ _SERVER来获取域名,但这只是给我的域我们托管的API脚本。使用PHP从api获取域名?
即时通讯使用PHP 4.x,会很快升级,但不是现在。
我有来自外部域的脚本访问我们的服务器上的api脚本,它通过json返回信息。我的问题是,如果有人从他们的网站向我们的网站发送了api脚本的请求,我可以获得请求来自的url/domain吗?如果是的话,我会怎么做?我尝试使用$ _SERVER来获取域名,但这只是给我的域我们托管的API脚本。使用PHP从api获取域名?
即时通讯使用PHP 4.x,会很快升级,但不是现在。
最好的办法是检查$_SERVER['HTTP_REFERER']
@米克汉森我试过,但价值对我来说是空白的。 – John 2011-06-13 17:58:50
它并不总是被支持。 – 2011-06-13 18:01:00
然后我不认为你有很多机会知道它起源于哪个域,他们可能使用API serverside而不是发送referer。 您可以实施API密钥系统来跟踪谁使用您的API。 – 2011-06-13 18:01:01
只是注意,引荐可能会被欺骗,所以如果你正在使用它进行认证,不要。当你抓住$_SERVER['HTTP_REFERER']
后,你可以使用这个功能来解析出所需的东西:parse_url
gethostbyaddr() – 2011-06-13 18:00:35
这也适用于子域吗?或只是顶级域名?因此,如果有人从subsite.mainsite.com访问api,它是否会获得mainsite.com?我想这取决于IP地址。 – John 2011-06-13 18:16:03