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


这篇文章主要介绍了Springboot 使用内置tomcat禁止不安全HTTP的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

 

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

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

让tomcat禁止不安全的HTTP方法

  <security-constraint    <web-resource-collection       <url-pattern>/*url-pattern       <http-method>PUThttp-method    <http-method>DELETEhttp-method    <http-method>HEADhttp-method    <http-method>OPTIONShttp-method    <http-method>TRACEhttp-method    web-resource-collection    <auth-constraint    auth-constraint security-constraint <login-config   <auth-method>BASICauth-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>dispweb-resource-name>             <url-pattern>/*url-pattern>             <http-method>PUThttp-method>             <http-method>DELETEhttp-method>             <http-method>HEADhttp-method>             <http-method>OPTIONShttp-method>             <http-method>TRACEhttp-method>             <http-method>PATCHhttp-method>         web-resource-collection>         <auth-constraint>auth-constraint>     security-constraint>

标签介绍:

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

转自:https://www.jb51.net/article/216907.htm