北京网帮你
struts2-045漏洞的加固方案
时间:2018-07-02 12:39:43 浏览:345

话说大家这几个小时刷str2-045跟打了鸡血似的,根本停不下来,那么,别得意,有攻就有防,我们来探讨一下如何加固避免被喂了炫迈的人们狠刷一波导致站库皆毁!

通过判断Content-Type头是否为白名单类型,来限制非法Content-Type的攻击。

加固代码:

<strong><font face="黑体"><font size="4">import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class SecurityFilter extends HttpServlet implements Filter {

       /**

        *

        */

       private static final long serialVersionUID = 1L;

       

       

       public final String www_url_encode= "application/x-www-form-urlencoded";

       public final String mul_data= "multipart/form-data ";

       public final String txt_pla= "text/plain";

       public void doFilter(ServletRequest arg0, ServletResponse arg1,

                       FilterChain arg2) throws IOException, ServletException {

               HttpServletRequest request = (HttpServletRequest) arg0;

               HttpServletResponse response = (HttpServletResponse) arg1;

               

               String contenType=request.getHeader("conTent-type");

               

               if(contenType!=null&&!contenType.equals("")&&!contenType.equalsIgnoreCase(www_url_encode)&&!contenType.equalsIgnoreCase(mul_data)&&!contenType.equalsIgnoreCase(txt_pla)){

                       

                       response.setContentType("text/html;charset=UTF-8");

                       response.getWriter().write("非法请求Content-Type!");

                       return;

               }

               arg2.doFilter(request, response);

       }

       public void init(FilterConfig arg0) throws ServletException {

       }

}</font></font></strong>

Java编译以后的SecurityFilter.class(SecurityFilter.java是源代码文件)复制到应用的WEB-INF/classes目录下。

配置Filter将下面的代码加入WEB-INF/web.xml文件中。

Java编译以后的SecurityFilter.class(SecurityFilter.java是源代码文件)复制到应用的WEB-INF/classes目录下。

配置Filter将下面的代码加入WEB-INF/web.xml文件中。

<strong><font face="黑体"><font size="4"><filter>

   <filter-name>SecurityFilter</filter-name>

   <filter-class>SecurityFilter</filter-class>

 </filter>

<filter-mapping>

   <filter-name>SecurityFilter</filter-name>

   <url-pattern>/*</url-pattern>

</filter-mapping></font></font></strong>

/*代表拦截所有请求,进行攻击代码检查,*.action只检查.action结尾的请求。

示例:

最后重启应用就OK啦~


[上一篇]laravel之homestead配置
[下一篇]如何在Linux上安装SVN,安装说明
Copyright 2022 © 93580.com.cn 网帮你

2022 © 版权所有 红花岗区网帮你信息技术工作室

工信部备案号:黔ICP备2024036985号-2

请使用网帮你微信扫码登录