[英]PHP: Get IP address of server where user clicked a link redirecting to my external site
为清楚起见,请想象一下
有没有办法用PHP和Apache做到这一点? 如果没有,有什么办法可以做到这一点吗?
<?php
// Perhaps something like:
$linking_server_ip = $_SERVER[LINKING_SERVER_IP];
?>
编辑:
所以$ _SERVER ['HTTP_REFERER']不能依赖,但我可以随意使用它(补充/机会信息表明引用者不是来自预期的端点,如果它不是空的可能。虽然它听起来因为即使这样也是不可靠的,因为任何插件客户端仍然可以破坏价值,使得合法推荐似乎来自其他服务器)。
我还有这个问题:
我需要验证服务器引用我站点上的特定页面(它充当该服务器的证书)。
EG他们的页面有一个指向certificate.php?serverid = 1234的链接
我想验证他们没有欺骗系统并在其他任何服务器上使用此证书(例如,使用siteA的siteC证书并避免支付应该在siteC上完成的服务)。
即使使用siteA http服务器的粗略解决方案请求我的服务器(siteB)获取一次性使用令牌以便在certificate.php上进行验证,他们也可以使用siteA每次其他站点时获取令牌需要一个令牌进行验证,以便他们可以欺骗验证并为siteA申请证书。
HTTP Referer
标头(是的,这就是拼写的方式!)告诉你这个。 它在您的PHP脚本中可用作$_SERVER['HTTP_REFERER']
。
(但请注意,并不能保证所有浏览器都会提供它,并且它可以被欺骗。不要使用它来强制执行任何安全策略。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.