【发布时间】:2018-05-09 18:06:25
【问题描述】:
我想建立一个网站,只允许用户使用可信的 URL 缩短器(如 bit.ly、goo.gl、...)来缩短我的 URL。我如何知道使用哪个 URL 缩短器将访问者重定向到我的网站?
【问题讨论】:
标签: php redirect url-shortener
我想建立一个网站,只允许用户使用可信的 URL 缩短器(如 bit.ly、goo.gl、...)来缩短我的 URL。我如何知道使用哪个 URL 缩短器将访问者重定向到我的网站?
【问题讨论】:
标签: php redirect url-shortener
你不能可靠。
您可以查看引荐来源网址(请参阅@MehrdadEP 的回答)以检测用户来自哪里,并根据缩短器是否跟随短链接并可能禁止访问(直到他们重新加载页面),但您不能停止短链接为您的网站创建短链接的服务。
通常你不会在引用页面中看到短网址,而是在之前的页面中看到。我不知道这究竟是什么时候发生的,但它似乎取决于缩短器使用的重定向类型(可能是临时重定向还是永久重定向)。
由于当前的最佳实践鼓励设置referrer policies,从而阻止浏览器将引荐来源传送到与链接不同源的网站,引荐来源变得越来越不可靠。
【讨论】:
使用HTTP_REFERER 标头查找引荐网址。 php 示例:
<?php
//method one
$ref = getenv("HTTP_REFERER");
echo $ref;
//method two
print $_SERVER["HTTP_REFERER"];
?>
【讨论】:
$_SERVER["HTTP_REFERER"] 仅在他的网站使用 HTTPS 时可用