使用PHP破解防盗链图片的一个简单方法
程序员文章站
2022-06-21 09:20:10
有自己的主机一般都会设计"防盗链", 其实包括图片防盗链,和下载防盗链等,如:1.使用.htaccess设置防盗链复制代码 代码如下:rewriteengine onrew...
有自己的主机一般都会设计"防盗链", 其实包括图片防盗链,和下载防盗链等,如:
1.使用.htaccess设置防盗链
复制代码 代码如下:
rewriteengine on
rewritecond %{http_referer} !^$
rewritecond %{http_referer} !^http://(www\.)?jb51.net/.*$ [nc]
rewriterule \.(gif|jpg)$ //www.jb51.net/image.gif [r,l]
rewritecond %{http_referer} !^$
rewritecond %{http_referer} !^http://(www\.)?jb51.net/.*$ [nc]
rewriterule \.(gif|jpg)$ //www.jb51.net/image.gif [r,l]
2.nginx设置防盗链
复制代码 代码如下:
location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked jb51.net;
if ($invalid_referer) {
rewrite ^/ http://jb51.net/234_s.gif;
#return 404;
}
}
valid_referers none blocked jb51.net;
if ($invalid_referer) {
rewrite ^/ http://jb51.net/234_s.gif;
#return 404;
}
}
但怎么破解防盗链呢? 一般的防盗链是判断来路是否为自己的域名, 我们可以使用 php 内置的 file_get_contents 方法来请求这个图片(当然别的后端语言也有类似的方法), 如:
复制代码 代码如下:
//getimg.php?url=目标图片连接
<?php
header('content-type: image/jpeg');
echo file_get_contents(isset($_get["url"])?$_get["url"]:'http://static.jb51.net/images/v1/loading-16-16.gif');
?>
<?php
header('content-type: image/jpeg');
echo file_get_contents(isset($_get["url"])?$_get["url"]:'http://static.jb51.net/images/v1/loading-16-16.gif');
?>
看例子:
1, 直接加载防盗链图片:(该站未授权的图片显示都是空白)
2, 通过php读取图片:
上一篇: PHP读取RSS(Feed)简单实例