PHP:获取服务器的IP地址,用户单击一个链接重定向到我的外部网站


PHP: Get IP address of server where user clicked a link redirecting to my external site

为了清楚起见,想象一下这个场景:

  • 用户正在访问siteA.com
  • 用户点击指向我的网站的链接:siteB.com
  • 我的网站想要确定的IP地址siteA.com在得到请求,所以它知道的IP服务器链接到它的这个请求。

是否有办法做到这一点与PHP和Apache?如果没有,有什么办法可以做到这一点吗?

<?php
// Perhaps something like:
$linking_server_ip = $_SERVER[LINKING_SERVER_IP];
?>
编辑:

所以$_SERVER['HTTP_REFERER']不能依赖,但我可以随意使用它,我猜(补充/机会主义信息,表明一个推荐人不是来自预期的端点,如果它不是空的可能。虽然这听起来不太可靠,因为任何插件客户端仍然可以篡改值,使合法的引用看起来像是来自其他服务器)。

我仍然有这个问题:

我需要验证服务器是否引用了我站点上的特定页面(它充当该服务器的证书)。

如他们的页面有一个到certificate。php的链接?serverid = 1234

我想验证他们没有欺骗系统,在他们的任何其他服务器上使用这个证书(例如,在siteC上使用siteA的证书,并避免为应该在siteC上完成的服务付费)。

即使使用粗略的解决方案,使siteA http的服务器请求我的服务器(siteB)获得一次性使用令牌以便在certificate.php上进行验证,他们也可以在每次其他站点需要令牌验证时使用siteA获取令牌,以便他们可以欺骗验证并为siteA申请证书。

HTTP Referer标头(是的,这就是它的拼写方式!)告诉你这一点。它在PHP脚本中作为$_SERVER['HTTP_REFERER']可用。

(但请注意,不能保证所有浏览器都会提供它,并且它可能被欺骗。不要用它来强制任何安全策略。