攻克防图片盗链
2016-07-29 00:00
190 查看
很多大型的网站都对自己的图片做了防止盗链的处理,目的是减轻服务器的压力,方式方法都是各有绝活。对于我们这种想直接通过<img src="人家的图片链接"/>来访问人家的链接的网站来说的症状就是,人家显示一个警告图片,你想看的图片莫名奇妙的变成了提示页面。品德较好的网站直接让你看到一个大红叉。
为此我们不得不攻克防图片盗链的方式。
思路如下:你直接将图片的链接在浏览器中敲上,肯定可以显示。但是你内嵌到网页中通过img的src引用肯定没戏,那么我们只能在请求的时候读取一下图片的内容,然后在我们的页面显示了。
具体实施的时候,你需要这么处理:
在你的项目下建立一个jsp文件:images.jsp,内容如下
<%@page contentType="image/jpeg" import="java.io.OutputStream,java.io.InputStream,java.net.URL,java.net.URLConnection" language="java"%>
<%
try{
OutputStream os = response.getOutputStream();
//获取图片路径url=http://www.sohu.com/images/aaa.jpg
String picPath = request.getQueryString();
//获取纯路径 http://www.sohu.com/images/aaa.jpg
picPath = picPath.substring(4,picPath.length());
//建立请求链接
URLConnection u = new URL(picPath).openConnection();
InputStream in = u.getInputStream();
if (null != in) {
int len;
byte[] b = new byte[1024];
while ((len = in.read(b)) != -1) {
os.write(b, 0, len);
}
os.flush();
in.close();
}
os.close();
out.clear();
//将图片内容重写到页面
out = pageContext.pushBody();
}catch(Exception e){
e.printStackTrace();
}
%>
然后在你所引用的别的网站页面的图片中
将<img src="http://comment.news.sohu.com/upload/as3rfsghgg/1.jpg"/>
换成:<img src="http://www.yourdomain.com/project/image.jsp?url=http://comment.news.sohu.com/upload/as3rfsghgg/1.jpg"/>
这样你就可以随意的将别的网站的图片放到自己公司的网站了。盗链成功了。
原理就是你创建的那个images.jsp文件将你url后的那个图片链接读取了然后重写到页面了。
想想那些网站何必呢,明知会被破解,还是要做防范,真是矛盾呀
为此我们不得不攻克防图片盗链的方式。
思路如下:你直接将图片的链接在浏览器中敲上,肯定可以显示。但是你内嵌到网页中通过img的src引用肯定没戏,那么我们只能在请求的时候读取一下图片的内容,然后在我们的页面显示了。
具体实施的时候,你需要这么处理:
在你的项目下建立一个jsp文件:images.jsp,内容如下
<%@page contentType="image/jpeg" import="java.io.OutputStream,java.io.InputStream,java.net.URL,java.net.URLConnection" language="java"%>
<%
try{
OutputStream os = response.getOutputStream();
//获取图片路径url=http://www.sohu.com/images/aaa.jpg
String picPath = request.getQueryString();
//获取纯路径 http://www.sohu.com/images/aaa.jpg
picPath = picPath.substring(4,picPath.length());
//建立请求链接
URLConnection u = new URL(picPath).openConnection();
InputStream in = u.getInputStream();
if (null != in) {
int len;
byte[] b = new byte[1024];
while ((len = in.read(b)) != -1) {
os.write(b, 0, len);
}
os.flush();
in.close();
}
os.close();
out.clear();
//将图片内容重写到页面
out = pageContext.pushBody();
}catch(Exception e){
e.printStackTrace();
}
%>
然后在你所引用的别的网站页面的图片中
将<img src="http://comment.news.sohu.com/upload/as3rfsghgg/1.jpg"/>
换成:<img src="http://www.yourdomain.com/project/image.jsp?url=http://comment.news.sohu.com/upload/as3rfsghgg/1.jpg"/>
这样你就可以随意的将别的网站的图片放到自己公司的网站了。盗链成功了。
原理就是你创建的那个images.jsp文件将你url后的那个图片链接读取了然后重写到页面了。
想想那些网站何必呢,明知会被破解,还是要做防范,真是矛盾呀
相关文章推荐
- 进制转换
- Zookeeper全解析——Paxos
- 在CSDN的blog被挂马了,到处都是“精神病医院”的广告,改了一上午都没改完,不改了
- load runner 监控linux操作系统需要做的工作
- 持续集成之jenkins(二)
- suse下定制开启启动tomcat的计划任务
- 大型电商的订单设计概要
- 持续集成之自动部署-controlTier
- 修改系统用户的帐号密码
- 8个实用而有趣Bash命令提示行
- 建立大型电商团队的参考
- 如何管理并设计你的口令
- 忘记了本地mysql密码应该怎么找回
- 编程修养(三)
- Springframework(一)spring基础概念介绍
- linux安装使用jprofiler6分析服务器应用状态
- java 内存分配机制
- 在linux下配置nginx+java+php的环境
- 第三章:Creating Applications and activities-概述
- 重写博客了