簡單的防盜鏈技術(過濾器原理)

public class ImgFilter implements Filter {瀏覽器

public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("過濾器初始化...");
}緩存

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("doFilter...");spa

HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String referer = req.getHeader("referer");
// 請求服務名稱 
String serverName = req.getServerName();
System.out.println("referer:" + referer + ",serverName:" + serverName);
if (referer == null || !(referer.contains(serverName))) {
//
req.getRequestDispatcher("error.png").forward(req, res);
return ;
}

//放行
chain.doFilter(req, res);
}server

public void destroy() {圖片

}ip

}get

 

簡單的防盜圖片過濾器代碼it

tip:通常更新圖片和js加上時間戳,方式瀏覽器緩存不能及時更新產生的一些錯誤io

相關文章
相關標籤/搜索