Rumah  >  Artikel  >  Java  >  Bagaimanakah Springboot menggunakan tomcat terbina dalam untuk melarang HTTP yang tidak selamat?

Bagaimanakah Springboot menggunakan tomcat terbina dalam untuk melarang HTTP yang tidak selamat?

WBOY
WBOYke hadapan
2023-05-12 11:49:052057semak imbas

Tomcat terbina dalam Springboot melarang kaedah HTTP yang tidak selamat

1 Anda boleh mengkonfigurasi kandungan berikut dalam web.xml tomcat

Biar tomcat melarang kaedah HTTP yang tidak selamat

<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. But Spring menggunakan tomcat terbina dalam

Tiada fail konfigurasi web.xml Anda boleh mengkonfigurasinya melalui konfigurasi berikut

Dayakan kaedah HTTP yang tidak selamat

Penerangan masalah:

Halaman web, skrip dan fail boleh dimuat naik, diubah suai atau dipadamkan pada pelayan web.

"Mendayakan kaedah HTTP yang tidak selamat: OPTIONS /system HTTP/1.1Benarkan: HEAD, PUT, DELETE, TRACE, OPTIONS, PATCH

Penggunaan kaedah di atas:

  • Pilihan, Head, Trace: digunakan terutamanya oleh aplikasi untuk menemui dan menjejaki sokongan pelayan dan tingkah laku rangkaian; >

    Letak dan Siarkan: Serahkan dokumen ke pelayan;

  • Padam: Musnahkan sumber atau koleksi; 🎜>

  • PropFind dan PropPatch: dapatkan semula dan tetapkan sifat untuk sumber dan koleksi; 🎜>

  • Kunci dan buka kunci: Perlindungan Overwrite
  • Jelas sekali butiran operasi di atas boleh memuat naik, mengubah suai, memadam, dan lain -lain ke pelayan web perkhidmatan. Walaupun WebDAV mempunyai kawalan kebenaran, masih terdapat banyak kaedah serangan di Internet, jadi jika anda tidak memerlukan kaedah ini, disyorkan untuk menyekatnya sahaja
  • Penyelesaian:

  • Tambahkan kandungan berikut pada web.xml dalam aplikasi web
  • @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;
        } 
    }

    pengenalan teg:

  • 84b6cf644bd9f54bb62a105bfe5ffc42

  • fc0069494b7e459eab1bf2c31c9d7aac digunakan untuk mengehadkan peranan yang boleh mengakses sumber tersebut bermakna semua pengguna peranan dilarang mengakses

< ;url-pattern>Nyatakan sumber yang perlu disahkan

b190c47e8c533223e36c741af28a3317Nyatakan kaedah yang perlu disahkan

Atas ialah kandungan terperinci Bagaimanakah Springboot menggunakan tomcat terbina dalam untuk melarang HTTP yang tidak selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam