Java 通过设置Referer反盗链

下面是完整的代码。


代码如下:

package cn.searchphoto.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.zip.GZIPInputStream;
/**
* 下载远程网站的图片,通过设置Referer反反盗链。
*
* @author JAVA世纪网(java2000.net, laozizhu.com)
*/
public class ImageDownloader {
/**
* 下载文件到指定位置
* @param imgurl 下载连接
* @param f 目标文件
* @return 成功返回文件,失败返回null
*/
public static File download(String imgurl, File f) {
try {
URL url = new URL(imgurl);
URLConnection con = url.openConnection();
int index = imgurl.indexOf("/", 10);
con.setRequestProperty("Host", index == -1 ? imgurl.substring(7) : imgurl.substring(7, index));
con.setRequestProperty("Referer", imgurl);
InputStream is = con.getInputStream();
if (con.getContentEncoding() != null && con.getContentEncoding().equalsIgnoreCase("gzip")) {
is = new GZIPInputStream(con.getInputStream());
}
byte[] bs = new byte[1024];
int len = -1;
OutputStream os = new FileOutputStream(f);
try {
while ((len = is.read(bs)) != -1) {
os.write(bs, 0, len);
}
} finally {
try {
os.close();
} catch (Exception ex) {}
try {
is.close();
} catch (Exception ex) {}
}
return f;
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
}

(0)

相关推荐

  • Java 通过设置Referer反盗链

    下面是完整的代码. 复制代码 代码如下: package cn.searchphoto.util; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import java.util.zip.GZIPInputStream;

  • 详解php伪造Referer请求反盗链资源

    有些产品为了防止自己的产品被盗链访问,会采用反盗链措施,如封闭型生态的音乐网站和视频网站,他们已经为了版权付费,自然不希望你免费使用他们的资源.但因为很多人专门研究盗链,因此我们也需要了解下盗链.反盗链和逃避反盗链的原理. 盗链 引用百度百科对盗链的定义: 盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率.受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何

  • 使用php伪造referer的方法 利用referer防止图片盗链

    什么是HTTP Referer简言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理.比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站.Referer其实应该是英文单词Referrer,不过拼错的人太多了,所以编写标准的人也就将错就错了.我的问题我刚刚把feed阅读器改变为Grega

  • 使用referer指令配置Nginx服务器来防止图片盗链

    由于nginx不支持.htaccess,所以,从这个方面直接去防止是行不通的,我们要通过修改配置文件来解决. 首先,我们找到需要防盗链的域名的conf文件,路径:/usr/local/nginx/conf/vhost/,比如guance.com.conf.先备份下原文件,然后找到下面的部分: location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } 将它修改为: location ~ .*\.(gif|jpg|jpeg|png|bmp

  • Nginx设置Referer来防止盗图的实现方法

    如果服务器的图片被别的网站盗链,将影响服务器的带宽以及访问速度,这时我们就需要设置图片文件或视频文件的防盗链功能: 防盗链功能,简单来说就是你可以直接访问该资源,但是不能将我的资源链接放到你自己的服务器上让别人访问,尤其是图片或视频这种比较大的文件,容易导致服务器响应很慢. 如果不是图床,还真怕别的网站直接使用本站图片.这样子流量很可能一下子就被刷光了,毕竟CDN都是白花花的银子买来的. 因此,还是设置一个防盗链吧,Nginx就可以完成这个功能了. 一般来说,遵照HTTP协议实现的浏览器,在从A

  • Asp.Net Core 通过中间件防止图片盗链的实例

    一.原理 要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件.换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址.有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面.如果想对自己的网站进行防盗链保护,则需要针对不同的情况进行区

  • php如何控制用户对图片的访问 PHP禁止图片盗链

    把images目录设置成不充许http访问(把图片目录的:读取.目录浏览 两个权限去掉). 用一个PHP文件,直接用file函数读取这个图片.在这个PHP文件里进行权限控制. apache环境中,在你的图片目录中加上下面这个文件即可. 文件名 .htaccess 文件内容如下 复制代码 代码如下: # options the .htaccess files in directories can override. # Edit apache/conf/httpd.conf to AllowOve

  • 三招两式 解决图片盗链无法查看问题

    几乎所有的图片防盗链功能,都是通过判断referer来实现的.通常的规则是,如果referer是本网站的那几个域的url或者referer为空时,则图片正常输出,否则给出一个出错图片. 知道原理了,问题就好解决了--就是伪造一个referer.例如请求一个网易相册图片的时候,总是伪装发送网易相册的referer,而不管实际的referer. 本文将介绍在Firefox,Opera,IE这三大浏览器中,遇到提示盗链的图片时,正常浏览该图片的方法. (一)Firefox Firefox下笔者发现了三

  • 部分网站允许空白referer的防盗链图片的js破解代码

    Javascript源码: 复制代码 代码如下: function showImg( url ) { var imgid = Math.random(), frameid = 'frameimg' + imgid; window['img'+imgid] = '<img id="img" src=\''+url+'?kilobug\' /><script>window.onload = function() { parent.document.getElemen

  • Asp.net防止盗链的实现原理分析

    如果被引用的站比较小这样外站盗链带来的"无作用"流量就给站长带来了压力了(流量也是要钱滴).对于防盗链可以从两个方面来防,一个是服务器,一个是程序里面判断.各个服务器的判断不一样,iis需要安装特定的防盗链软件.我们今天主要讨论的是程序里实现防盗链. 原理解释 网上现在比较流行的是使用handler来实现防盗链.具体的意思如下:专门新建一个针对某种文件请求的处理类(继承于IHttpHandler)并在 web.config里面配置好所有的该文件请求都指向该类.然后在类里面判断该请求的前

随机推荐