我需要能够使用PHP检测链接是否来自特定域。我不能只检查链接中是否存在域名,因为它可以通过附加域伪造。
感谢。
答案 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