閱讀326 返回首頁    go 小米 go 小米手環


JavaEE中使用Filter來實現圖片的防盜鏈

一、防盜鏈圖片的filter

public class ImageRedirectFilter implements Filter {

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);
  }
}
}


二、web.xml

<filter>
 <filter-name>imageRedirectFilter</filter-name>
 <filter-class>com.filter.ImageRedirectFilter</filter-class>
</filter>
<filter-mapping>
 <filter-name>imageRedirectFilter</filter-name>
 <url-pattern>/upload/images/*</url-pattern>
</filter-mapping>

 

原帖地址:https://blog.csdn.net/itm_hadf/article/details/7390180

最後更新:2017-04-03 15:21:43

  上一篇:go Bash學習筆記
  下一篇:go C++編程規範直4:做代碼審查