Dec
18
Felix分析Boblog防盗链实现原理
注意一下链接的形式:
/blog/attachment.php?fid=x 其中x是一个数字。
所以我们访问的都是attachment.php这个文件。
根据HTTP协议规定,在HTTP头部的信息中可以有这么一句
Referer: 来源地址
这样服务器很容易就可以知道点击链接的来源是什么地方(一般浏览器都会支持)
所以只要attachment.php只要parse一下$_SERVER['HTTP_REFERER']
就可以知道是否是来自允许的站点。
所以可以用一个php脚本来实现:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
/blog/attachment.php?fid=x 其中x是一个数字。
所以我们访问的都是attachment.php这个文件。
根据HTTP协议规定,在HTTP头部的信息中可以有这么一句
Referer: 来源地址
这样服务器很容易就可以知道点击链接的来源是什么地方(一般浏览器都会支持)
所以只要attachment.php只要parse一下$_SERVER['HTTP_REFERER']
就可以知道是否是来自允许的站点。
所以可以用一个php脚本来实现:
<?php
$host = "localhost";
$uri = "/manage.php";
$savename = "example.txt";
$crlf = chr(13).chr(10); //回车换行。如果显示不正确请换成下面那行
//$crlf = "\r\n";
$out = "GET http://$uri HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Referer: http://19880711.com\r\n";
$out .= "Connection: close\r\n\r\n";
$fp = fsockopen($host,80,$errno,$errstr);
if(!$fp){die("Error appeared: $errno - $errstr");}
fputs($fp,$out);
while(!feof($fp)&&$a!=$crlf)$a = fgets($fp);//去掉header
$savefp = fopen($savename,"w");
while(!feof($fp))
fwrite($savefp,fread($fp,128));
fclose($fp);
fclose($savefp);
//附送一个函数^_^
function RemoveHttpHeader(&$a)
{
$pos = strpos($a,"\r\n\r\n");
if( $pos === false)
{
return true;
}
else
$a = substr($a,$pos+4);
return false;
}
?>
$host = "localhost";
$uri = "/manage.php";
$savename = "example.txt";
$crlf = chr(13).chr(10); //回车换行。如果显示不正确请换成下面那行
//$crlf = "\r\n";
$out = "GET http://$uri HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Referer: http://19880711.com\r\n";
$out .= "Connection: close\r\n\r\n";
$fp = fsockopen($host,80,$errno,$errstr);
if(!$fp){die("Error appeared: $errno - $errstr");}
fputs($fp,$out);
while(!feof($fp)&&$a!=$crlf)$a = fgets($fp);//去掉header
$savefp = fopen($savename,"w");
while(!feof($fp))
fwrite($savefp,fread($fp,128));
fclose($fp);
fclose($savefp);
//附送一个函数^_^
function RemoveHttpHeader(&$a)
{
$pos = strpos($a,"\r\n\r\n");
if( $pos === false)
{
return true;
}
else
$a = substr($a,$pos+4);
return false;
}
?>
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
改回[code]标签,正常了