轻松破解防盗链

来源:互联网 发布:usb电子显微镜软件app 编辑:程序博客网 时间:2024/04/27 13:12

   既然防盗链机制是通过判断请求头的referer,那么我们就尝试从客户端来伪造一个请求referer来绕过这个机制,我们需要用的主角是:HttpClient。现在已经升级到4.0了,具体的应用,我还没去一一尝试,比如网络蜘蛛,上传,下载,恶意灌水等,这个包真是神通广大。。。 这里只是给自己一个抛砖引玉的作用,有机会自己再慢慢进行研究。至于HttpClient怎么使用,网上一大把教程,在这里我就不说了,贴完自己的代码后,我会在文章后面贴一些比较好的参考文档。大家共同进步吧!

 

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;

public class HttpClientPower {
 public static void main(String args[]) {
  HttpClient http = new HttpClient();
  //假如我们要取到getAny.action页面的数据,而这个网站又加了防盗链
  GetMethod get = new GetMethod("http://www.aaa.com/getAny.action");
  //请求模式
  get.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
    new DefaultHttpMethodRetryHandler());
  //最主要是这一行代码,我们伪造了一个请求头,
  get.addRequestHeader("referer", "http://www.aaa.com");
  try {
   int statusCode = http.executeMethod(get);
   if (statusCode != HttpStatus.SC_OK) {
    System.err.println("Method failed: " + get.getStatusLine());
   }
   // 读取内容
   byte[] content = get.getResponseBody();
   String str = new String(content, "UTF-8");
   //这里的内容多姿多彩,如果response返回的是网页,就是网页的所有内容,如果是JSON串那就是JSON数据,如果是XML就是XML咯。
   System.out.println(str);
   //作为演示,不细化异常了
  } catch (Exception e) {
   System.out.println("发生异常!");
  } finally {
   //释放资源
   get.releaseConnection();
  }
 }
}

 

参考资料:

http://www.blogjava.net/Alpha/archive/2007/01/22/95216.html

HttpClient入门
http://blog.csdn.net/ambitiontan/archive/2006/01/07/572644.aspx

Jakarta Commons HttpClient 学习笔记
http://blog.csdn.net/cxl34/archive/2005/01/19/259051.aspx

Cookies,SSL,httpclient的多线程处理,HTTP方法
http://blog.csdn.net/bjbs_270/archive/2004/11/05/168233.aspx

 

 

原创粉丝点击