同时重定向并伪造裁判

时间:2011-06-04 02:23:26

标签: php redirect http-referer

有没有办法将用户重定向到另一个网站并同时伪造推荐人。? 用我的代码试过这个,我知道它错了,但那只是我能走多远。

<?php
    $page1 = "http://google.com"; $page2 = "http://yahoo.com/";
    $mypages = array($page1,$page2); 
    $myrandompage = $mypages[mt_rand(0, count($mypages) -1)];
    $sites = array_map("trim", file("links.txt"));
    $referer = $sites[array_rand($sites)];

function fake_it($url, $ref, $agent) 
{ 
  $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: "; // browsers keep this blank. 

  curl_setopt($curl, CURLOPT_URL, $url); 
  curl_setopt($curl, CURLOPT_USERAGENT, $agent); 
  curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
  curl_setopt($curl, CURLOPT_REFERER, $ref); 
  curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); 
  curl_setopt($curl, CURLOPT_AUTOREFERER, true); 
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt($curl, CURLOPT_TIMEOUT, 5000); 

  $html = curl_exec($curl);
  curl_close($curl);

  // returns the content provided by the site
  return $html;
}

//Below would send a request to the url, with the second parameter as the referrer
echo fake_it($myrandompage, $referer,$_SERVER['HTTP_USER_AGENT']);

?>

我想要的是来自refer.php - &gt; google.com(referer =其他网址)..

2 个答案:

答案 0 :(得分:2)

您可以做的是将用户重定向到https网站,例如<{3}}描述 + 在您的redirect.php脚本上执行元刷新:

redirect.php:(例如damianb

<?php $destination = $_GET['url']; ?>
<html><head><meta http-equiv="refresh" content="0;url=<?php echo $destination; ?>/"></head><body></body></html>

现在你使用2种武器(https,以及仍然发送引用的浏览器:刷新标记)。

在RFC 2616中它说:

1。 &#34;如果从HTTP安全(HTTPS)连接访问网站,并且链接指向除另一个安全位置之外的任何位置,则不会发送引用字段&#34;

但是因为这不完全正确..不幸的是,你也可以考虑这个:

2。 &#34;大多数网络浏览器在被指示使用&#34;刷新&#34;重定向时不发送引用字段。领域。这不包括Opera的某些版本和许多移动Web浏览器。但是,万维网联盟(W3C)不鼓励这种重定向方法。[7]&#34;

https://www.myurl.com/redirect.php?url=http://www.someotherurl.com

使用Chrome和Firefox进行测试。祝你好运!

答案 1 :(得分:0)

我认为你根本不能改变推荐人。

我知道垃圾引用者的唯一方法是使用cURL代理页面加载(这是坏主意,坏主意),或者我相信你可以从HTTPS页面转发出站。

我不是很确定,但我似乎记得,出于安全原因,浏览器在来自HTTPS网站时不会发送引荐来源。

Lemme仔细检查。

编辑:根据RFC 2616,浏览器不应在来自HTTPS安全站点时发送引用。

参考:http://tools.ietf.org/html/rfc2616#section-15.1.3

  

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