`

一个小小的防盗链图片的filter

阅读更多
一个小小的防盗链图片的filter,还凑合着可以用下




public class ImageRedirectFilter implements Filter {

public void init(FilterConfig config) throws ServletException {
}

public void doFilter(ServletRequest req, ServletResponse res,
   FilterChain chain) throws IOException, ServletException {

  HttpServletRequest request = (HttpServletRequest) req;
  HttpServletResponse response = (HttpServletResponse) res;

  // 禁止缓存
  response.setHeader("Cache-Control", "no-store");
  response.setHeader("Pragrma", "no-cache");
  response.setDateHeader("Expires", 0);

  // 链接来源地址
  String referer = request.getHeader("referer");
  System.out.println("refer is"+referer);

  if (referer == null || !referer.contains(request.getServerName())) {

   /**
    * 如果 链接地址来自其他网站,则返回错误图片
    */
   request.getRequestDispatcher("/error.gif").forward(request,
     response);

  } else {

   /**
    * 图片正常显示
    */
   chain.doFilter(request, response);
  }

}

public void destroy() {
}
}





web.xml:

<filter-mapping>
  <filter-name>imageRedirectFilter</filter-name>
    <url-pattern>/upload/images/*</url-pattern>
</filter-mapping>

0 0 0
(请您对文章做出评价)
3
0
分享到:
评论
2 楼 hold_on 2010-10-20  
原理是这样的吗?
HTTP协议中有个字段记录叫 Referer
referer 里面存储的是浏览器当前页面的上一个页面的地址,根据这个地址是不是本服务器的地址,如果不是则返回错误图片。
那么当浏览器第一次请求该站点的网址时,上面的图片是怎么显示的,或者文件怎么下载?
1 楼 zhengyutong 2010-03-02  
收藏了............

相关推荐

    采集破解防盗链图片显示的方法

    在提供的压缩包中,`getimg.php`是一个关键文件,它可能是用来处理防盗链问题的核心代码。这个PHP脚本可能包含以下功能: 1. 检查`Referer`字段:首先,脚本会检查HTTP请求中的`Referer`字段,如果该字段为空或者...

    Java爬取web图片防盗链

    HttpURLConnection+jsoup防盗链 {"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661...

    如何快速解决图片防盗链问题

    对于个人博客、SEO优化者、网站管理员以及内容创作者来说,遇到防盗链图片导致文章中的图片无法正常显示是一个令人头疼的问题。本文将详细介绍防盗链的基本原理,并提出一种简单实用的方法来应对这一问题。 #### ...

    Java爬虫小例子,爬取小网站,突破防盗链下载图片

    这个"Java爬虫小例子"项目展示了如何利用Java来爬取小型网站,特别是那些有防盗链保护的图片资源。防盗链是网站为了防止其他网站直接引用其服务器上的资源而采取的一种防护措施。下面我们将深入探讨相关的知识点。 ...

    java 防盗链详解及解决办法

    基于这样的机制,就会产生一个问题,那就是盗链问题:就是一个网站中如果没有起页面中所说的信息,例如图片信息,那么它完全可以将这个图片的连接到别的网站。 Http中的referer Http Referer是header的一部分,当...

    C# MVC HttpModule 防盗链和图片304缓存

    如果`Referer`不是你的网站,你可以拒绝服务,返回一个错误页面或者一个空的图片。以下是一个简单的示例: ```csharp public class AntiHotlinkModule : IHttpModule { public void Init(HttpApplication context)...

    图片防盗链(jsp)

    3. IP黑白名单:维护一个IP白名单或黑名单,只允许特定IP地址访问图片。可以使用`request.getRemoteAddr()`获取客户端IP。 三、其他防盗链策略 除了JSP实现,还可以结合其他技术如JavaScript、服务器端代理等方式...

    防盗链filter

    实现一个Java防盗链filter,通常需要以下步骤: 1. **创建Filter类**:继承自`javax.servlet.Filter`接口,并实现`doFilter()`方法。 2. **配置Filter**:在web.xml中定义filter,指定过滤哪些URL模式。 3. **实现...

    httpHandler实战应用:RSS-图片防盗链接-图片验证码

    HTTPHandler可以生成随机的验证码图片,并将其与服务器端的一个会话变量绑定。当用户提交表单时,会验证输入的验证码是否与服务器端的值匹配。HTTPHandler在此过程中负责生成验证码图片,包括随机字符的生成、颜色、...

    破解图片防盗链servlet

    1. **防盗链的概念**:防盗链(Hotlink Protection)是指网站为了防止其他站点未经允许直接链接自己的资源(如图片、视频等),采取的一种技术手段,用以避免资源被非法使用导致的带宽消耗。 2. **防盗链的实现方式...

    无视图片防盗链php单文件.zip

    这个名为"无视图片防盗链php单文件.zip"的压缩包包含了一个PHP文件(img.php)和一个使用说明(使用说明.txt),显然是为了提供一种解决方案来规避或破解图片防盗链。下面将详细探讨图片防盗链的原理以及可能的处理...

    ASP.NET 图片防盗链示例

    ASP.NET 图片防盗链示例是一个实用的编程实践,它主要针对网站的图像资源保护问题。在互联网上,图片被盗用是一种常见的现象,这不仅侵犯了原创者的权益,也可能对网站的流量造成损失。因此,实施图片防盗链技术是...

    Node.js-FileTransferServer解决防盗链图片使用问题的中转服务器

    ImageKeeper可能是利用FileTransferServer的一个具体应用,它可能是一个图片托管服务,需要防止用户直接链接到托管的图片,以保护服务的稳定性和效率。FileTransferServer作为其备用web服务器,能在主服务器出现问题...

    Asp.Net MVC 图片防盗链(v_1.1.0)

    可以创建一个名为`ImgAccessFilter`的过滤器,检查每个图片请求是否符合防盗链规则。 4. **路由配置**: - 配置MVC路由,让所有图片请求都通过特定的Controller和Action处理,这样可以在处理方法中执行防盗链检查...

    网站防盗链(IIS7.0与IIS7.5配置防盗链)

    然后在`&lt;rules&gt;`节点下添加一个`&lt;rule&gt;`节点,用于定义防盗链规则。例如,以下规则将阻止所有非同一域名的请求: ```xml *" /&gt; ^http(s)?://(www\.)?yourdomain\.com.*" negate="true" /&gt; ...

    RealServer防盗链插件(UUReal防盗链)

    UUReal防盗链插件的安装过程相对简单,通常包括以下几个步骤: 1. 下载并解压压缩包,获取到play.asp、UUREALAUTHBYCOOKIE_Demo.dll等相关文件。 2. 将UUREALAUTHBYCOOKIE_Demo.dll复制到RealServer的plugins目录下...

    IIS防盗链附带防盗链效果 for phpwind.rar

    标题"IIS防盗链附带防盗链效果 for phpwind.rar"涉及到的是互联网服务器技术中的一个关键概念,即IIS(Internet Information Services)防盗链功能,并且是针对PHPWind论坛系统的。PHPWind是一款流行的开源社区建站...

    防盗链完美解决方案

    防盗链完美解决方案 防盗链完美解决方案,提供给你一些安全的方法。

    图片防盗链.java

    图片防盗链.java图片防盗链.java图片防盗链.java

    asp.net中利用ashx实现图片防盗链

    当一个网页请求加载图片时,会附带一个 Referer(引用者)头部信息,这个信息包含了请求该图片的页面地址。通过检查这个 Referer 信息,我们可以判断请求是否来自允许的域,从而决定是否提供图片资源。 ### 实现...

Global site tag (gtag.js) - Google Analytics