Springboot 使用內(nèi)置tomcat禁止不安全HTTP的方法
Springboot 內(nèi)置tomcat禁止不安全HTTP方法
1、在tomcat的web.xml中可以配置如下內(nèi)容
讓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使用內(nèi)置tomcat
沒有web.xml配置文件,可以通過以下配置進(jìn)行,簡(jiǎn)單來說就是要注入到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匹配表達(dá)式 collection.addPattern("/*"); constraint.addCollection(collection); constraint.setAuthConstraint(true); context.addConstraint(constraint ); //設(shè)置使用httpOnly context.setUseHttpOnly(true); } }); return tomcatServletContainerFactory; } }
啟用不安全的HTTP方法
問題描述:
可能會(huì)在Web服務(wù)器上上載、修改或刪除Web頁面、腳本和文件。
'啟用了不安全的HTTP方法:OPTIONS /system HTTP/1.1Allow: HEAD, PUT, DELETE, TRACE, OPTIONS, PATCH
上述方法的用途:
- Options、Head、Trace:主要由應(yīng)用程序來發(fā)現(xiàn)和跟蹤服務(wù)器支持和網(wǎng)絡(luò)行為;
- Get:檢索文檔;
- Put和Post:將文檔提交到服務(wù)器;
- Delete:銷毀資源或集合;
- Mkcol:創(chuàng)建集合
- PropFind和PropPatch:針對(duì)資源和集合檢索和設(shè)置屬性;
- Copy和Move:管理命名空間上下文中的集合和資源;
- Lock和Unlock:改寫保護(hù)
很顯然上述操作明細(xì)可以對(duì)web服務(wù)器進(jìn)行上傳、修改、刪除等操作,對(duì)服務(wù)造成威脅。雖然WebDAV有權(quán)限控制但是網(wǎng)上一搜還是一大堆的攻擊方法,所以如果不需要這些方法還是建議直接屏蔽就好了。
解決方案:
在web應(yīng)用中的web.xml加上如下內(nèi)容
<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>
標(biāo)簽介紹:
- <security-constraint>用于限制對(duì)資源的訪問;
- <auth-constraint>用于限制那些角色可以訪問資源,這里設(shè)置為空就是禁止所有角色用戶訪問;
- <url-pattern>指定需要驗(yàn)證的資源
- <http-method>指定那些方法需要驗(yàn)證
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JAVA開發(fā)環(huán)境Vs?code配置步驟詳解
這篇文章主要為大家介紹了JAVA開發(fā)環(huán)境Vs?code配置步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04java中List數(shù)組用逗號(hào)分隔開轉(zhuǎn)成字符串2種方法
在我們?nèi)粘i_發(fā)中,在前后端交互的時(shí)候會(huì)遇到多個(gè)id或其他字段存放到一個(gè)字段中,這時(shí)我們會(huì)遇到一個(gè)List(集合)---->String(單個(gè)字段),這篇文章主要給大家介紹了關(guān)于java中List數(shù)組用逗號(hào)分隔開轉(zhuǎn)成字符串的2種方法,需要的朋友可以參考下2023-10-10一文帶你掌握J(rèn)ava8中Lambda表達(dá)式 函數(shù)式接口及方法構(gòu)造器數(shù)組的引用
Java 8 (又稱為 jdk 1.8) 是 Java 語言開發(fā)的一個(gè)主要版本。 Oracle 公司于 2014 年 3 月 18 日發(fā)布 Java 8 ,它支持函數(shù)式編程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等2021-10-10淺析JavaMail發(fā)送郵件后再通過JavaMail接收格式問題
這篇文章主要介紹了JavaMail發(fā)送郵件后再通過JavaMail接收格式問題 ,本文通過代碼實(shí)例給大家詳細(xì)解說,需要的朋友可以參考下2019-06-06詳解java JDK 動(dòng)態(tài)代理類分析(java.lang.reflect.Proxy)
這篇文章主要介紹了詳解java JDK 動(dòng)態(tài)代理類分析(java.lang.reflect.Proxy)的相關(guān)資料,需要的朋友可以參考下2017-06-06Spring Boot啟動(dòng)及退出加載項(xiàng)的方法
這篇文章主要介紹了Spring Boot啟動(dòng)及退出加載項(xiàng)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04