未使用引荐来源政策设置标题

时间:2019-06-13 09:37:52

标签: php .htaccess http-headers

我有一个域,假设我要重定向到www.whatismyreferer.com来检查引荐来源网址www.domain.com。当我使用PHP标头重定向页面时,它显示No Referr /隐藏在结果中。我想在whatismyrefer.com上将引荐网址设置为www.domain.com

这是我在www.domain.com的index.php文件上的代码:

<?php

header("Referrer-Policy: origin");
header("Location: https://www.whatismyreferer.com",true, 302);
?>

我也尝试了Referrer-policy:unsafe-url,但仍然没有referrer

但是如果我使用:

<meta name="referrer" content="origin">
<meta http-equiv="refresh" content="0;https://www.whatismyreferer.com">

然后显示引荐来源。我不想使用meta标记,我想使用标头位置

1 个答案:

答案 0 :(得分:1)

我认为问题可能在于您如何测试它。 3xx重定向保留了原始的Referer-浏览器不会在重定向本身上设置 new Referer。因此,如果您直接在您的网站上请求.index.php(无引用者),那么重定向的请求中也将没有引用者。

元刷新不是3xx HTTP重定向,其行为就像您遵循常规锚点/链接一样,因此浏览器会生成Referer

相反,您需要测试链接到test-referer.html的辅助文件(例如index.php),以便在测试重定向/ {{1}之前生成Referer }标头。

Referrer-Policy

更新:

通过这种方式测试后,<!-- test-referer.html --> <a href="/index.php">index.php</a> 标头对我来说是正确的。

  

我想在whatismyrefer.com上将引荐网址设置为www.domain.com

在这种情况下,您不能简单地使用3xx HTTP重定向(没有初始引用程序),因为3xx重定向本身不会生成引用程序(如上所述)。如果3xx重定向生成了Referrer-Policy,则由于规范的重定向等原因,站点将始终存在引荐来源网址丢失的问题。

您将需要使用元刷新(如您建议的那样)或使用JavaScript“重定向”(未经测试)。或者,如果您的意图是简单地“伪造” Referer,则可以使用CURL-尽管这不会直接导致重定向。