突破图片防盗链的解决方法
2016年9月17日
没有评论
很多网站怕别人链接自己的图片,而使用了防盗链。例如微信公众号的文章,网易博客等,图片链过来后无法显示。
图片防盗链的原理想必很多人也都清楚,也就是在服务端检测客户浏览器发来的HTTP请求表头里,referer这项是不是包含自己的网站域名,如果是盗链,referer里应该是盗链者网站的域名。
如果我们把图片地址直接在浏览器里打开,发现图片是可以打开的,而盗链却不行,因为referer这项的内容为空。而我们可以模拟浏览器请求,来得到图片内容。
知道了原理,解决办法也就很简单了,直接上PHP代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $url = (isset($_GET['url']))?$_GET['url']:''; $type = getimagesize($url); $type = $type['mime'];//获取图片头类型,以便后续创建 header("Content-type: ".$type); $httpheader = array(); $ch = curl_init($url); curl_setopt($ch, CURLOPT_REFERER, '');//referer设置为空 curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader); curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); curl_exec($ch); curl_close($ch); ?> |
将代码保存为lpic.php文件,调用时候直接“http://你的网站域名/lpic.php?url=http://要链的网站图片地址”即可!