ホームページ  >  記事  >  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

上記のメソッドの使用:

  • オプション、ヘッド、トレース: 主にサーバー サポートとネットワーク動作を検出および追跡するためにアプリケーションによって使用されます;

  • Get: ドキュメントを取得します;

  • Put および Post: ドキュメントをサーバーに送信します;

  • Delete: リソースまたはコレクションを破棄します;

  • Mkcol:コレクションの作成

  • PropFind および PropPatch: リソースとコレクションのプロパティを取得および設定します;

  • コピーと移動: 名前空間コンテキストでのコレクションとコレクションの管理リソース;

  • ロックとロック解除: 上書き保護

上記の操作の詳細により、アップロード、変更、削除などができることは明らかです。 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 は、リソースにアクセスできるロールを制限するために使用されます。ここで空に設定すると、すべてのロール ユーザーがアクセスを禁止されます。
  • 66e1775cbd9d5002635ae3285442ba88検証する必要があるリソースを指定します
  • b190c47e8c533223e36c741af28a3317検証する必要があるメソッドを指定します確認する
  • #

以上がSpringboot は組み込みの Tomcat をどのように使用して安全でない HTTP を禁止しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。