如何检测链接是否来自特定域

时间:2010-12-13 19:25:24

标签: php

我需要能够使用PHP检测链接是否来自特定域。我不能只检查链接中是否存在域名,因为它可以通过附加域伪造。

感谢。

2 个答案:

答案 0 :(得分:3)

只需使用 parse_url()作为konforce提及。例如:

$url = "http://www.google.com/";
$parts  = parse_url ($url);

print $parts["host"];   // will print www.google.com

// Or, for PHP 5.1 and above
$host =  parse_url ($url, PHP_URL_HOST); // returns www.google.com

现在,关于这一点的好处是将域名附加到这样的URL的末尾:

http://www.google.com/?www.foo.com

无法正常工作,因为主机元素仍会说该链接指向www.google.com而不是www.foo.com。

希望这会有所帮助。

答案 1 :(得分:0)

我相信您需要检查引荐来源并确保使用双正斜杠检查,因为这是协议的一部分(HTTP / HTTPS)并且不能伪造。

点击此链接以获取额外参考:Determining Referer in PHP

我会检查类似......

  

// www.mydomain.com

     

// mydomain.com