Springboot 使用內(nèi)置tomcat禁止不安全HTTP的方法
讓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)單來(lái)說(shuō)就是要注入到Spring容器中
@Configurationpublic 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頁(yè)面、腳本和文件。
’啟用了不安全的HTTP方法:OPTIONS /system HTTP/1.1Allow: HEAD, PUT, DELETE, TRACE, OPTIONS, PATCH
上述方法的用途:
Options、Head、Trace:主要由應(yīng)用程序來(lái)發(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è)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 小技巧處理div內(nèi)容溢出2. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)3. 怎樣才能用js生成xmldom對(duì)象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?4. 解析原生JS getComputedStyle5. .NET SkiaSharp 生成二維碼驗(yàn)證碼及指定區(qū)域截取方法實(shí)現(xiàn)6. PHP字符串前后字符或空格刪除方法介紹7. jsp實(shí)現(xiàn)登錄界面8. XML入門的常見問題(二)9. 得到XML文檔大小的方法10. PHP循環(huán)與分支知識(shí)點(diǎn)梳理
