有没有办法将用户重定向到另一个网站并同时伪造推荐人。? 用我的代码试过这个,我知道它错了,但那只是我能走多远。
<?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 =其他网址)..
答案 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请求 协议