Springboot 使用内置tomcat禁止不安全HTTP的方法

 更新时间:2021年07月07日 14:55:48   作者:归田  
这篇文章主要介绍了Springboot 使用内置tomcat禁止不安全HTTP的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Springboot 内置tomcat禁止不安全HTTP方法

1、在tomcat的web.xml中可以配置如下内容

让tomcat禁止不安全的HTTP方法

<security-constraint>  
   <web-resource-collection>  
      <url-pattern>/*</url-pattern>  
      <http-method>PUT</http-method>  
   <http-method>DELETE</http-method>  
   <http-method>HEAD</http-method>  
   <http-method>OPTIONS</http-method>  
   <http-method>TRACE</http-method>  
   </web-resource-collection>  
   <auth-constraint>  
   </auth-constraint>  
</security-constraint>  
<login-config>  
  <auth-method>BASIC</auth-method>  
</login-config>

2、Spring boot使用内置tomcat

没有web.xml配置文件,可以通过以下配置进行,简单来说就是要注入到Spring容器中

@Configuration
public class TomcatConfig { 
    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcatServletContainerFactory = new TomcatEmbeddedServletContainerFactory();
        tomcatServletContainerFactory.addContextCustomizers(new TomcatContextCustomizer(){
 
   @Override
   public void customize(Context context) {
    SecurityConstraint constraint = new SecurityConstraint();
    SecurityCollection collection = new SecurityCollection();
    //http方法
    collection.addMethod("PUT");
    collection.addMethod("DELETE");
    collection.addMethod("HEAD");
    collection.addMethod("OPTIONS");
    collection.addMethod("TRACE");
    //url匹配表达式
    collection.addPattern("/*");
    constraint.addCollection(collection);
    constraint.setAuthConstraint(true);
    context.addConstraint(constraint );
    
    //设置使用httpOnly
    context.setUseHttpOnly(true);    
   }
        });
        return tomcatServletContainerFactory;
    } 
}

启用不安全的HTTP方法

问题描述:

可能会在Web服务器上上载、修改或删除Web页面、脚本和文件。

'启用了不安全的HTTP方法:OPTIONS /system HTTP/1.1Allow: HEAD, PUT, DELETE, TRACE, OPTIONS, PATCH

上述方法的用途:

  • Options、Head、Trace:主要由应用程序来发现和跟踪服务器支持和网络行为;
  • Get:检索文档;
  • Put和Post:将文档提交到服务器;
  • Delete:销毁资源或集合;
  • Mkcol:创建集合
  • PropFind和PropPatch:针对资源和集合检索和设置属性;
  • Copy和Move:管理命名空间上下文中的集合和资源;
  • Lock和Unlock:改写保护

很显然上述操作明细可以对web服务器进行上传、修改、删除等操作,对服务造成威胁。虽然WebDAV有权限控制但是网上一搜还是一大堆的攻击方法,所以如果不需要这些方法还是建议直接屏蔽就好了。

解决方案:

在web应用中的web.xml加上如下内容

<security-constraint>
        <web-resource-collection>
            <web-resource-name>disp</web-resource-name>
            <url-pattern>/*</url-pattern>
            <http-method>PUT</http-method>
            <http-method>DELETE</http-method>
            <http-method>HEAD</http-method>
            <http-method>OPTIONS</http-method>
            <http-method>TRACE</http-method>
            <http-method>PATCH</http-method>
        </web-resource-collection>
        <auth-constraint></auth-constraint>
    </security-constraint>

标签介绍:

  • <security-constraint>用于限制对资源的访问;
  • <auth-constraint>用于限制那些角色可以访问资源,这里设置为空就是禁止所有角色用户访问;
  • <url-pattern>指定需要验证的资源
  • <http-method>指定那些方法需要验证

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java源码阅读之java.lang.Object

    java源码阅读之java.lang.Object

    这篇文章主要介绍了java源码阅读之java.lang.Object,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 浅谈JVM中的JOL

    浅谈JVM中的JOL

    我们天天都在使用java来new对象,但估计很少有人知道new出来的对象到底长的什么样子?对于普通的java程序员来说,可能从来没有考虑过java中对象的问题,不懂这些也可以写好代码。今天,给大家介绍一款工具JOL,可以满足大家对java对象的所有想象。
    2021-06-06
  • Java多例Bean的应用场景-easyExcel导入

    Java多例Bean的应用场景-easyExcel导入

    EasyExcel 是一个基于 Java 的简单、省内存的读写 Excel 的开源项目。这篇文章主要介绍了用easyExcel导入Java Bean的应用场景,感兴趣的朋友可以参考阅读
    2023-04-04
  • 基于JavaBean编辑器读取peroperties文件的实例

    基于JavaBean编辑器读取peroperties文件的实例

    下面小编就为大家带来一篇基于JavaBean编辑器读取peroperties文件的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Java用list储存,遍历,查询指定信息过程详解

    Java用list储存,遍历,查询指定信息过程详解

    这篇文章主要介绍了Java用list储存,遍历,查询指定信息过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • JAVA抽象类和抽象方法(abstract)实例分析

    JAVA抽象类和抽象方法(abstract)实例分析

    这篇文章主要介绍了JAVA抽象类和抽象方法(abstract),结合实例形式分析了java抽象类及抽象方法相关定义、使用技巧与操作注意事项,需要的朋友可以参考下
    2019-11-11
  • mybatis接收以逗号分隔的字符串批量查询方式

    mybatis接收以逗号分隔的字符串批量查询方式

    这篇文章主要介绍了mybatis接收以逗号分隔的字符串批量查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • springboot 集成cas5.3 实现sso单点登录详细流程

    springboot 集成cas5.3 实现sso单点登录详细流程

    SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。单点登录是目前比较流行的企业业务整合的解决方案之一,本文给大家介绍springboot 集成cas5.3 实现sso单点登录功能,感兴趣的朋友一起看看吧
    2021-10-10
  • 关于SpringCloudStream配置问题

    关于SpringCloudStream配置问题

    这篇文章主要介绍了关于SpringCloudStream配置问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • @Scheduled fixedDelayString 加载properties配置方式

    @Scheduled fixedDelayString 加载properties配置方式

    这篇文章主要介绍了@Scheduled fixedDelayString 加载properties配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10

最新评论