通常,在搜索答案时,我发现某些网站会允许您阅读他们提供的信息(如果引用者是google.com)。但是,如果您直接链接到信息,它将无法使用。
我正在寻找的是最小的PHP脚本,它将设置我选择的引用者和目的地,如下所示:
http://example.com/ref_red.php?referer=http://google.com/&end=http://example.net/
注意:
http://example.com/some/rr/print.pl?document=rr
。注意:正如回复中建议的那样,我正在添加此内容。该脚本本身不是完整的代理。 只有初始HTTP请求才会被代理(不是后续请求,例如图片等),仅用于设置引用的唯一用途。
答案 0 :(得分:11)
这个功能应该给你一个起点 它将使用指定的引用来获取任何http url
处理查询参数应该是非常简单的,所以我将留下那部分让你去做
<?php
echo geturl('http://some-url', 'http://referring-url');
function geturl($url, $referer) {
$headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg,text/html,application/xhtml+xml';
$headers[] = 'Connection: Keep-Alive';
$headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
$useragent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)';
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, $headers);
curl_setopt($process, CURLOPT_HEADER, 0);
curl_setopt($process, CURLOPT_USERAGENT, $useragent);
curl_setopt($process, CURLOPT_REFERER, $referer);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
$return = curl_exec($process);
curl_close($process);
return $return;
}
?>
答案 1 :(得分:2)
您可以使用互联网上提供的某项服务,这些服务允许隐藏引荐(通过设置其地址),但您不能强制使用不是实际引荐来源的特定引荐来源。在将用户重定向到目标网站之前,必须将用户重定向到该网站(将显示为推荐人)。
其中一项服务:http://linkanon.com
编辑:
由于您现在更改了您的问题,我在PHP中编写用作代理的用户代理的评论适用,但这接近于犯罪活动,因为您将向用户显示第三方网站可能会认为她在实际的网站上,而实际上她会加载你的内容(你传递的内容)。要执行这种接近犯罪的活动(您距离尝试读取用户名和密码只有一步之遥),您可以使用自己的书面用户代理加载第三方的网站内容,该代理指定虚假推荐人并简单地通过输出到您网站的访问者。 PHP中允许一个发送HTTP头的函数是header($ header):
header("Referer: http://example.org");
您可以尝试阅读HTTP(这是世界转向的协议),而不是向那些试图提供帮助的人大喊大叫。有关Referer标题的规范:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html(参见第14.36节)。
您也可以阅读http://en.wikipedia.org/wiki/Referrer_spoofing,其中您可以看到它与客户端有关。 PHP是服务器端。您所能做的就是尝试编写由PHP生成的客户端代码(Javascript),但如果您有任何运气,那么您将闯入用户的世界。
答案 2 :(得分:0)
引用程序由您的浏览器设置,而不是由任何服务器端机制设置。我想,你可以在PHP中构造一个代理,它发出远程服务器的请求并适当地设置referer头。使用Firefox插件似乎更有用,例如 http://www.stardrifter.org/refcontrol/
编辑:我会改写你的问题,以明确你想要编写一个带有自定义引用标头的PHP代理。我可能只需修改 http://sourceforge.net/projects/poxy/之类的内容即可获取引荐参数并将其传递。
再次编辑:您可能清楚自己在问什么,但要求不可能的事情并不可能。浏览器负责设置引用标头;它使用导致它重定向到新资源的URI。你要的是一个脚本,上面写着“请访问http://example.net,但是当你这样做时假装我实际上是www.foo.com”。服务器没有任何机制可以指示浏览器“撒谎”它的来源。
我认为通过一些令人费解的JavaScript黑客攻击可能是可能的,但是黑帽子意味着黑客攻击 - 一个能够迫使浏览器欺骗引用者的网站将是一个真正的安全漏洞。