我有一个脚本可以从其他网站(不同的域)向我的网站发出POST请求,我需要知道是否有可能获取其他域。
喜欢:helloworld.com使用我的脚本,并使用mywebsite.com执行POST请求。mywebsite.com如何知道请求来自helloworld.com?
我试过了,$_SERVER['REMOTE_HOST']但这不起作用。
您需要检查HTTP 引荐来源网址。
在 PHP 中,这将是$_SERVER['HTTP_REFERER'];.
在 JavaScript 中,这将是document.referrer.
请注意,它可能不准确并且很容易被欺骗,所以它的价值应该用少许盐来衡量。
要提供有关如何可靠地执行此操作的更多详细信息(尽管需要远程服务器的合作):
secret为任意字符串 ( abc123)。key是每个请求唯一的随机字符串(例如当前时间)token由生成md5(secret + key)。key和token(但不包含)。 secretmd5(secret + key) === token因为没有人知道秘密,所以可以保证请求来自远程服务器。当然,有人可能会从远程服务器请求表单,窃取keyand token,然后将请求转发给自己......
你应该使用HTTP_REFERER. 但不能完全信任
$_SERVER['HTTP_REFERER']
看看这里,它记录在哪里:http: //php.net/manual/en/reserved.variables.server.php
采用
$_SERVER['HTTP_REFERRER']
获取发出请求的页面
你可以保存IP。gethostbyaddr($ip)
如果脚本自动执行,$_SERVER['HTTP_REFERRER']将不起作用。