php 伪装 referer 1,2,3
CODE:[Copy to clipboard]<?php
/**
* $Id$
*
* Filename : referer.php
* Author : 额系菜屁屁
* Email :
[email protected] | hotmail.com
* Create : 20060831
* LastMod : 2006
* Usage :
* 国际村首发
*/
//ini_set('display_errors', 1);
//error_reporting(E_ALL ^ E_NOTICE);
//header("Content-type:text/html;charset=utf-8");
set_time_limit(5);
$referer = 'http://php.club.goodoon.com';
$data = 'Hello PHPX!';
$host = "www.phpx.com";
$path = "/happy/index.php";
$port = '80';
$user = '额系菜屁屁';
$pswd = '屁屁';
// {{{ 方法 1 ,用 fsockopen
/*
// 处理好 formhash 的值就可以实现登录,这里还不可以,弄过discuz的可以尝试一下
$path = "/happy/logging.php?action=login";
$data = "formhash=&referer=$referer&loginmode=normal&cookietime=2592000&loginfield=username&username=$user&password=$pswd&questionid=0";
*/
$q = '';
$q .= "GET $path HTTP/1.1rn";
$q .= "Host: $hostrn";
$q .= "Referer: $refererrn"; // 看这里
$q .= "Content-type: application/x-www-form-urlencodedrn";
$q .= "Content-length: ".strlen($data)."rn";
$q .= "Accept: */*rn";
$q .= "Connection: closern";
$q .= "rn";
$q .= $data;
$fp = fsockopen($host, $port);
fputs($fp, $q);
$r = '';
while(!feof($fp)) {
$r .= fgets($fp);
}
fclose($fp);
//echo $r;
// }}}
// {{{ 方法 2 ,用 curl 系列函数(另外 curl 真的非常不错,值得大家尝试。你,值得拥有。 ^_^)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.phpx.com/happy/logging.php?action=login");
curl_setopt($ch, CURLOPT_REFERER, $referer); // 看这里,你也可以说你从google来
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
// 上面这句,当然你可以说你是baidu,改掉这里的值就ok了,可以实现小偷的功能,
//你也可以自己做个 spider 了,那么就伪装这里的 CURLOPT_USERAGENT 吧
curl_setopt($ch, CURLOPT_POST, 1); // post 过去
curl_setopt($ch, CURLOPT_POSTFIELDS, array('username' => $user, 'password' => $pswd)); // post 的字段
// 当然这里也可以用这个方式来实现登录,不过这里对discuz来讲还是有 formhash 问题,
// 也许换个没有这种安全验证机制的登录是可以的。
// 烦琐的我就不再弄了。
$r = curl_exec($ch);
curl_close($ch);
// }}}
// {{{ 方法 3 就是 stream 系列函数了
$opts = array(
"http" => array(
'method' => "GET",
'header' => "Referer: http://php.club.goodoon.comrnAccept: */*rnAccept-language: zh-cnrnCookie: username=额系菜屁屁rn"
/*也许“额系菜屁屁”这里需要encode什么滴*/
)
);
$context = stream_context_create($opts);
// 当然这里也可以用 stream_context_set_option 函数设置更多 options
$fp = fopen("http://www.phpx.com/happy/index.php", "r", false, $context);
fpassthru($fp);
fclose($fp);
// }}}
/**
总结,虽然这里什么事情也没有去做。
但是,这里告诉大家的东西很显然,
以上就是使用我们都喜欢的 php 伪装 http 的 referer,就这样。
所以,referer 不是完全可以信任的。
我所知道的方法就这些,希望能给您炎热的夏天带来凉爽的快感.
以上涉及的东西,不光只有referer问题,同时您也可以看出来,我们可以伪装的东西很多,
很容易就可以做出小偷呀什么的东西来,嘿嘿
当然做小偷还有许多东西要做,比如网页内容可以取下来后,还是需要分析的,这个当然要用 preg_* 系列函数了,
再提一下,抓取往页,linux 下 wget 可能是最合适的人选了,本山大哥说,谁用谁知道!哈哈
免责一下,这里是谈技术,只是说小偷这种技术,不建议做坏用。^_^
*/
?>