首頁  >  文章  >  Java  >  Springboot怎麼使用內建tomcat禁止不安全HTTP

Springboot怎麼使用內建tomcat禁止不安全HTTP

WBOY
WBOY轉載
2023-05-12 11:49:052057瀏覽

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>

標籤介紹:

    #84b6cf644bd9f54bb62a105bfe5ffc42用於限制對資源的存取;
  • fc0069494b7e459eab1bf2c31c9d7aac用來限制那些角色可以存取資源,這裡設定為空就是禁止所有角色使用者存取;
  • < ;url-pattern>指定需要驗證的資源
  • b190c47e8c533223e36c741af28a3317指定那些方法需要驗證

以上是Springboot怎麼使用內建tomcat禁止不安全HTTP的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除