Springboot 使用内置tomcat禁止不安全HTTP的方法
短信预约 -IT技能 免费直播动态提醒
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
上述方法的用途:
- 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>指定那些方法需要验证
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341