解决图片 防盗链
js版解决方案
var url = 'https://mmbiz.qpic.cn/mmbiz_jpg/TAoksPVlXMI7dQPxiaUbAHvyJ19iaG9b2Ueh53iaqTsn6F8O3m63zcBibgNpujM1HNeCKX99vOov72LpHuqs92SMlg/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1'; var path = showImg(url); console.log(path); document.getElementById('img').innerHTML = path; function showImg(url) { var frameid = 'frameimg' + Math.random(); window.img = '<img id="img" src=\'' + url + '?' + Math.random() + '\' /><script>window.onload = function() { parent.document.getElementById(\'' + frameid + '\').height = document.getElementById(\'img\').height+\'px\'; }<' + '/script>'; return '<iframe id="' + frameid + '" src="javascript:parent.img;" frameBorder="0" scrolling="no" width="100%"></iframe>'; }
后台提供代理
ngnix等都行
这里提供一个java版的代码,用再整理 临时记录
<%@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后的那个图片链接读取了然后重写到页面了。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java并发原理
网上有不计其数的并发编程文章,甚至有不计其数的书来介绍这个主题。你为什么要花10分钟时间来读完这篇文章呢?我给的答案:“他们全是废话。”,我觉得这个主题用10分钟就可以说完,根本不要用花这么长时间,也不用去折腾Java内存模型之类的东西。 我只讲原理,不会告诉你怎么用Java的并发库,这是java doc干的事情 理解Java并发原理或者其他语言的并发(没错,这篇文章是“跨语言”的!!!还这么短,你说牛逼不牛逼)只需要记住理解两个东西: CPU访问存储的方式——多级存储; CPU执行指令的方式——乱序 首先回忆我们大学的一门课程——《计算机组成原理》也许你的记忆里只有:“呃,你要说xx进制转换成xx进制吗?”。没关系我帮你回忆一下: 有一节课讲多级存储,说计算机最快的存储是CPU里面的Cache,其次是内存,最后是硬盘,最次的是外部存储(比如光盘之类的)。 还有一节课讲的是CPU流水线,乱序执行、分支预测,说CPU考虑性能问题会把几个没有数据关联的指令打乱顺序执行。 怎么样?有印象了吗?(什么?没读过大学?那我觉得你有必要读一下大学的课程——即便你不想混文凭)。 多级存储 我们来看一个...
- 下一篇
9月14日云栖精选夜读 | 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候?
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 热点热议 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候? 作者:技术小能手 发表在:Java架构沉思录 我敢保证,这些工具会让你的效率会提升好几倍!! 作者:技术小能手 发表在:成猿之路 从移动边缘计算到多接入边缘计算,MEC成5G研究新宠丨科技云·视角 作者:技术小能手 发表在:科技云报道 知识整理 初相识|performance_schema全方位介绍(一) 作者:技术小能手 发表在:老叶茶馆 Drill-on-YARN之源码解析 作者:徐洁阳 Hadoop hdfs+Spark配置 作者:落日畅想 如何从ActiveMQ平滑迁移到Kafka? 作者:技术小能手 发表在:程序员DD MySQL不为人知的主键与唯一索引约束 作者:技术小能手 发表在:架构师之路 美文回顾 短视频如何做到千人千面?FM+GBM排序模型深度解析 作者:技术小能手 发表在:阿里...
相关文章
文章评论
共有0条评论来说两句吧...