`

Java 防盗链 Referer

 
阅读更多

 

public class HTTPWebAuthFilter implements Filter {

	@Autowired
	private CommonConfig commonConfig;
	
	@Autowired
	private HttpSession session;
	
	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this,
				filterConfig.getServletContext());

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {

		HttpServletRequest httpRequest = (HttpServletRequest) request;
		
		// 防盗链
		String refer = httpRequest.getHeader("Referer");
		if(!WebTool1.isNull(refer)
				&& refer.indexOf(commonConfig.getLocalServerName()) < 0){

        	String str = "<script language='javascript'>alert('您的违规操作将被中止、记录并保留追溯权利!');"
                    + "window.top.location.href='"
                    + httpRequest.getContextPath()+"/bi/init"
                    + "';</script>";
        	response.setContentType("text/html;charset=UTF-8");// 解决中文乱码
            PrintWriter writer = response.getWriter();
            try {
                writer.write(str);
                writer.flush();
                writer.close();
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
            	writer.close();
            }
            return;
        
		}
		
		if(httpRequest.getRequestURI().endsWith("/login") ){
			if(WebTool1.isNull(session.getAttribute(commonConfig.getAccHeader()))){
				chain.doFilter(request, response);
			}else{
				
				if(!WebTool1.isNull(httpRequest.getParameterMap().get("account"))
						&& httpRequest.getParameterMap().get("account").length > 0){
					chain.doFilter(request, response);
				}else{
					request.setAttribute("roleModels", session.getAttribute("roleModels"));
					request.setAttribute("username", session.getAttribute("username"));
					request.getRequestDispatcher("/WEB-INF/jsp/welcome.jsp").forward(request, response);
					return;
				}
			}
		}else{
			chain.doFilter(request, response);
		}
	}

	@Override
	public void destroy() {
	}
}

 

分享到:
评论

相关推荐

    java 防盗链详解及解决办法

    主要介绍了 java 防盗链详解及解决办法的相关资料,这里介绍了防盗链的概念、产生原因及Http中的referer,最后介绍解决办法,需要的朋友可以参考下

    nginx利用referer指令实现防盗链配置

    nginx模块ngx_http_referer_module通常用于阻挡来源非法的域名请求,我们应该牢记。下面这篇文章主要介绍了nginx利用referer指令实现防盗链配置的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

    互联网视频防盗链的研究(referer,Token防盗链) - 简书.webarchive

    关于IPv6很详尽的描述,介绍了各种基本知识,包括1Pv6 编址、ICMPv6 与邻居发现协议、1Pv6 路由、DHCPv6 等内容,并详细讨论了包括双枝、 隧道、转换在内的各种1Pv4 向1Pv6 迁移的过渡技术。

    python3 图片referer防盗链的实现方法

    本篇文章主要破解referer防盗链技术 referer防盗链技术: referer防盗链技术是服务器通过检查客户端提起的请求包内的referer字段来阻止图片下载的,如果referer字段错误,服务器会跳到另一个地址,这将导致错误的...

    request.getHeader("referer")防盗链

    HTTP headers是HTTP请求和相应的核心模块,它承载了关于客户端浏览器、请求页面、服务器等相关信息。Referer是HTTP头中的一个属性,告诉服务器我是从哪个页面链接过来的。

    超全面javaweb教程28天第10天 12 request之使用Referer请求头完成防盗链

    超全面javaweb教程28天第10天_12_request之使用Referer请求头完成防盗链

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

    主要是有些网站的图片调用是防盗链的但一般只是判断referer是不是自己网站,如果referer为空也会显示图片,所以有了下面的代码。

    ISAPI Rewrite实现IIS图片防盗链

    为了实现图片防盗链,根据网络上搜集的资料加上自己的实践,终于实现了iis下的图片防盗链功能。  实施步骤:  1.下载比较出名的www.helicontech.com提供的ISAPI Rewrite软件的免费版本(免费版本虽然有一些功能上...

    Java 通过设置Referer反盗链

    以前写过通过URLConnection下载图片等网络资源的代码,不过发现象新浪等网站,都不允许直接连接,所以增强了代码,通过模拟仿造referer来实现下载。

    粗略测试防盗链的例子

    Referer: http://www.safedog.org/showTexts.do?type=welcome\r\n Cookie: JSESSIONID=3A0906227152D1B188B1B83D9A306A57; ISafeAuditor=DD8A95362877E67325C903013D17E92F\r\n

    Referer原理与图片防盗链实现方法详解

    本文实例讲述了Referer原理与图片防盗链实现方法。分享给大家供大家参考,具体如下: 1、图片防盗链 在一些大型网站中,比如百度贴吧,该站点的图片采用了防盗链的规则,以至于使用下面代码会发生错误。 简单代码: ...

    【JavaWeb开发】Referer防盗链的详解

    1. 什么是Referer? Referer 是 HTTP 请求(requset) header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里就有包含 Referer 。 比如我在www.csdn.net里点击一篇博客,那么点击这...

    PHP实现防盗链的方法分析

    本文实例讲述了PHP实现防盗链的方法。分享给大家供大家参考,具体如下: $_SERVER['HTTP_REFERER']的获取情况 注意 $_SERVER[‘HTTP_REFERER’] 并不一定总能获取到,只有在以下情况下才能获取到: 一、能够取到...

    php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)

    那么如果考虑突破防盗链的措施,就需要考虑在 HTTP_REFERER 上面做手脚了。PHP 脚本中对应的变量是 $_SERVER[‘HTTP_REFERER’] ,它存储了 HTTP_REFERER 的值。 由于直接访问目标 URL 资源已经被上述防盗链的措施给...

    php下通过伪造http头破解防盗链的代码

    伪造referer实例代码,主要用于一些突破防盗链,比如图片,软件等等 这里就直接给出完整的程序吧,具体的应用可以自己修改。 我这里给出的例子是很简单的,其实可以从这个例子中发展出很多的应用。比如隐藏真实的URL...

    asp下载防盗链代码

    asp下载防盗链代码第一种: 终于对下载系统做了个防盗链措施,在下载的页面头部做了如下代码,相关代码如下: 代码如下:&lt;&#37; From_url = Cstr(Request.ServerVariables(“HTTP_REFERER”)) Serv_url = ...

    php实现图片文件与下载文件防盗链的方法

    在php中最简单的防盗链办法就是利用php的$_SERVER[‘HTTP_REFERER’]函数来操作了,但是此方法不可靠,我们最终还是需要使用apache,iis来进行操作的,具体的操作方法如下: php防盗链: 复制代码 代码如下:&lt;?php ...

Global site tag (gtag.js) - Google Analytics