jfinal 检测到目标URL存在http host头攻击漏洞的解决方法

编写handler 来对此漏洞进行修复

注:JFinal的 Handler是 AOP + 责任链 模式的一个变种,JFinal对action及interceptor处理自身也是一个Handler名叫ActionHandler,可见其功能之强大。平时开发的时候一般不需要使用,当Action与Interceptor还不够用的时候可以考虑Handler上场。另外Handler可以替代Filter,你无需在web.xml 中再声明Filter了。举几个应用的例子吧:1:网站改版,需要在新网站上兼容老网站上的url时能用到,只需要在Handler中将老网站url转换成新的就可以了。2:防恶意抓取可以使用Handler分析请求规律并封锁ip地址。3:如果你想自创一套路由规则可以用Handler。 如果你要做网站访问日志也可以使用Handler。Handler 可以接管所有请求,所以是无所不能的,你甚至可以基于 Handler 再扩展出一套自己的web 框架 😃
直接上代码(hanlder 内容):



package com.gdszgl.common.handler;

import com.jfinal.handler.Handler;
import com.jfinal.kit.HandlerKit;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**ren
 */
public class HttpHostHandler  extends Handler {


	public HttpHostHandler() {
		System.out.println("头部host过滤已启动--------------------------");
	}

	public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) {
	    //检测到会话cookie中缺少HttpOnly属性的问题解决
		response.setHeader( "Set-Cookie", "name=value; HttpOnly");

		//点击劫持:X-Frame-Options 配置
		response.addHeader("x-frame-options","SAMEORIGIN");
		
		System.out.println("头部host 过滤开始--------------------------");
		String host=request.getHeader("host");
		if(host!=null&&checkHost(host)==true){
			System.out.println("头部host 过滤结束--------------------------");
			next.handle(target, request, response, isHandled);
		}else{
			HandlerKit.renderError404(request, response, isHandled);
			System.out.println("头部host 过滤结束--------------------------");
			return;
		}
	}

	private boolean checkHost(String host){
		if(host.contains("xx.xx.xx.xx")){//此处为自己网站的主机地址
			return true;
		}
		return true;
	}
}

MainConfig 启动类的内容。

 //处理头部host 的问题
    me.add(new HttpHostHandler());

博客参考
检测到目标URL存在http host头攻击漏洞(中风险) 文章

记录到这里,欧克!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值