Springboot 使用内置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使用内置tomcat
没有web.xml配置文件,可以通过以下配置进行,简单来说就是要注入到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匹配表达式 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>标签介绍: <security-constraint>用于限制对资源的访问; <auth-constraint>用于限制那些角色可以访问资源,这里设置为空就是禁止所有角色用户访问; <url-pattern>指定需要验证的资源 <http-method>指定那些方法需要验证
以上为个人经验,希望能给大家一个参考,也希望大家多多支持好吧啦网。
相关文章:
1. ie6,ie7,ie8完美支持position:fixed的终极解决方案2. Vue Element UI 表单自定义校验规则及使用3. 用css截取字符的几种方法详解(css排版隐藏溢出文本)4. CSS3实例分享之多重背景的实现(Multiple backgrounds)5. CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chrome、Opera6. JavaScript避免嵌套代码浅析7. chatGPT教我写compose函数的详细过程8. 《CSS3实战》笔记--渐变设计(一)9. 在 XSL/XSLT 中实现随机排序10. CSS可以做的几个令你叹为观止的实例分享