简体   繁体   English

更改请求的引荐来源不起作用

[英]Changing a request's referer doesn't work

I'm trying to fake the referer of a request using: 我正在尝试使用以下方法伪造请求的引用:

<?php

$url = "http://www.blabla.com";

function doMagic($url)
{
  $curl = curl_init();

  $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
  $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
  $header[] = "Cache-Control: max-age=0";
  $header[] = "Connection: keep-alive";
  $header[] = "Keep-Alive: 300";
  $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
  $header[] = "Accept-Language: en-us,en;q=0.5";
  $header[] = "Pragma: ";

  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.12011-10-16 20:23:00");
  curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  curl_setopt($curl, CURLOPT_REFERER, "http://www.fakeRef.com");
  curl_setopt($curl, CURLOPT_ENCODING, "gzip,deflate");
  curl_setopt($curl, CURLOPT_AUTOREFERER, true);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_TIMEOUT, 10);

  $html = curl_exec($curl);
  echo 'Curl error: '. curl_error($curl);
  curl_close($curl);

  return $html;
}

$text = doMagic($url);
print("$text");
?>

I have a local apache server that I'm using to run this PHP script: localhost/script.php. 我有一个本地Apache服务器,用于运行此PHP脚本:localhost / script.php。 The problem is that the actual referer (that Piwik reports) is localhost/script.php, not http://www.fakeRef.com . 问题是实际的引用者(Piwik报告)是localhost / script.php,而不是http://www.fakeRef.com

What's the issue here? 这里有什么问题?

The problem is that the actual referer (that Piwik reports) is localhost/script.php, not http://www.fakeRef.com . 问题是实际的引用者(Piwik报告)是localhost / script.php,而不是http://www.fakeRef.com

What's the issue here? 这里有什么问题?

You seem to be viewing the output of your curl operation in a browser. 您似乎正在浏览器中查看curl操作的输出。 Then the explanation is simple. 那么解释很简单。 Piwik uses a tracking image to count your hit. Piwik使用跟踪图像来计数您的点击。 The browser loads the tracking image; 浏览器加载跟踪图像; the image's referer will be your script, not the fake value you used to fetch the HTML code. 图片的引荐来源网址将是您的脚本,而不是您用于获取HTML代码的假值。

If you want to test whether setting the referer this way works, look into your server access logs. 如果要测试以这种方式设置引荐来源是否有效,请查看服务器访问日志。 The script.php request there should contain the faked referer. 那里的script.php请求应该包含伪造的引用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM