首页 > 伪编程 > 突破图片防盗链的解决方法

突破图片防盗链的解决方法

2016年9月17日 3,716 浏览数 发表评论 阅读评论

  很多网站怕别人链接自己的图片,而使用了防盗链。例如微信公众号的文章,网易博客等,图片链过来后无法显示。

  图片防盗链的原理想必很多人也都清楚,也就是在服务端检测客户浏览器发来的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://要链的网站图片地址”即可!

分类: 伪编程 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.