Letsencrypt是否有可能阻止$ _SERVER [' HTTP_REFERER']通过引荐域名?

时间:2017-01-07 23:49:43

标签: php ubuntu lets-encrypt

当我在我的共享主机(linux)上执行脚本时,它完全传递了HTTP_REFFERER,但是当我在运行Letsencrypt的专用ubuntu盒子上运行脚本时,HTTP_REFFERER的字段为空。

这是 traker.php     

$referer = $_SERVER['HTTP_REFERER'];

$agent = $_SERVER['HTTP_USER_AGENT'];

$ip = $_SERVER['REMOTE_ADDR'];

$redirect = $_GET['page'];


function logger($file, $line) {
  $fh = fopen($file, 'a');
  fwrite($fh, $line."\n");
    fclose($fh);
}

logger("clicks.txt", "Rec"); 
logger("clicks.txt", date("H:i:s d.m.Y")." - [".$_SERVER['REMOTE_ADDR']."] - ".$_SERVER['HTTP_USER_AGENT']." - [".$_SERVER['HTTP_REFERER']."] - "); 

header("Location: $redirect");
?>

这是 redirect_to_destination.php ,它在标题中被隐藏,并以body onLoad="va();"执行

function va() {
        window.location.href='http://example.com/traker.php?page=http://example.com/end_destination.php?subid=<?php echo $_SERVER["QUERY_STRING"]; ?>';
      }

最后一个脚本 end_destination.php 执行以下操作:

window.location.href='http://affiliate_link.com/?a=756547&c=8786&s1=<?php echo $_GET["subid"]; ?>';

最终链接链接为http://example.com/redirect_to_destination?test_subid

共享主机文件的输出是:

17:03:33 07.01.2017 - [01.001.01.001 (example ip)] - Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:50.0) Gecko/20100101 Firefox/50.0 - [http://example.com/redirect_to_destination.php?test]

使用letsencrypt签名在专用ubuntu框上运行的文件输出:

00:43:30 08.01.2017 - [01.001.01.001 (example ip)] - Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:50.0) Gecko/20100101 Firefox/50.0 - [] - 

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

https://smerity.com/articles/2013/where_did_all_the_http_referrers_go.html

  

HTTPS关闭HTTP网站的HTTP Referrers。为什么?根据RFC 2616(HTTP 1.1),这是由于敏感信息可能在引用URL中编码:

     
    

如果使用安全协议传输引用页面,则客户端不应在(非安全)HTTP请求中包含Referer头字段。

  

部分(不完全支持)解决方案:

  

<meta name="referrer" content="always">

我怀疑可以为您的重定向发送标题(因为它不会包含元标记的HTML),但我并不知道确切的实现。