龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

伪造来源破解下解防盗链图片的简单实现

时间:2011-08-03 16:55来源:未知 作者:admin 点击:
分享到:
伪造referer破解下解防盗链图片的简单实现 代码如下: ?php $url=http://img1.fbgirl.com/09/08/14/1465/1.jpeg; $referer=www.fbgirl.com; $writefile=basename($url); $filesss=sockOpenUrl($url,'GET',$referer); write_file($writef

伪造referer破解下解防盗链图片的简单实现

代码如下:


<?php


$url="http://img1.fbgirl.com/09/08/14/1465/1.jpeg";
$referer="www.fbgirl.com";
$writefile=basename($url);

$filesss=sockOpenUrl($url,'GET',$referer);
write_file($writefile,$filesss);



//sock方式打开远程文件
function sockOpenUrl($url,$method='GET',$referer,$postValue=''){
        $method = strtoupper($method);
        if(!$url){
                return '';
        }elseif(!ereg("://",$url)){
                $url="http://$url";
        }
        if(!$referer){
        $referer=$url;
        }
        $urldb=parse_url($url);
        $port=$urldb[port]?$urldb[port]:80;
        $host=$urldb[host];
        $query='?'.$urldb[query];
        $path=$urldb[path]?$urldb[path]:'/';
        $method=$method=='GET'?"GET":'POST';

        $fp = fsockopen($host, $port, $errno, $errstr, 30);
        if(!$fp)
        {
                echo "$errstr ($errno)<br />\n";
        }
        else
        {
                $out = "$method $path$query HTTP/1.1\r\n";
                $out .= "Host: $host\r\n";
                $out .= "Cookie: c=1;c2=2\r\n";
                $out .= "Referer: $url\r\n";
                $out .= "Accept: */*\r\n";
                $out .= "Connection: Close\r\n";
                if ( $method == "POST" ) {
                        $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
                        $length = strlen($postValue);
                        $out .= "Content-Length: $length\r\n";
                        $out .= "\r\n";
                        $out .= $postValue;
                }else{
                        $out .= "\r\n";
                }
                fwrite($fp, $out);
                while (!feof($fp)) {
                        $file.= fgets($fp, 256);
                }
                fclose($fp);
                if(!$file){
                        return '';
                }
                $ck=0;
                $string='';
                $detail=explode("\r\n",$file);
                foreach( $detail AS $key=>$value){
                        if($value==''){
                                $ck++;
                                if($ck==1){
                                        continue;
                                }
                        }
                        if($ck){
                                $stringdb[]=$value;
                        }
                }
                $string=implode("\r\n",$stringdb);
                //$string=preg_replace("/([\d]+)(.*)0/is","\\2",$string);
                return $string;
        }
}


/**
*写文件函数
**/
function write_file($filename,$data,$method="rb+",$iflock=1){
        @touch($filename);
        $handle=@fopen($filename,$method);
        if($iflock){
                @flock($handle,LOCK_EX);
        }
        @fputs($handle,$data);
        if($method=="rb+") @ftruncate($handle,strlen($data));
        @fclose($handle);
        @chmod($filename,0777);       
        if( is_writable($filename) ){
                return 1;
        }else{
                return 0;
        }
}



?>


精彩图集

赞助商链接