HTTP TRACE / TRACK Methods Allowed 问题修复

该博客介绍了一种修复HTTP TRACE和TRACK方法允许问题的方法。通过在Spring Boot应用中配置TomcatEmbeddedServletContainerFactory,创建一个安全约束并限制特定HTTP方法,包括TRACE。然后,通过设置`connector.setAllowTrace(false)`来禁用TRACE请求,从而提高应用程序的安全性。
摘要由CSDN通过智能技术生成

HTTP TRACE / TRACK Methods Allowed问题修复

import org.apache.catalina.Context;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;

/**
 * @author :dzp
 * @date :Created in 2021/4/26 20:09
 * @description:
 */
@SpringBootApplication
public class DemoApplication{
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    //主要是以下代码:
    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {// 1
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                collection.addMethod("HEAD");
                collection.addMethod("PUT");
                collection.addMethod("DELETE");
                collection.addMethod("OPTIONS");
                collection.addMethod("TRACE");
                collection.addMethod("COPY");
                collection.addMethod("SEARCH");
                collection.addMethod("PROPFIND");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        //如果需要禁用TRACE请求,需添加以下代码:
        tomcat.addConnectorCustomizers(connector -> {
            connector.setAllowTrace(true);
        });
        return tomcat;
    }
}
由于您没有提供更多的上下文信息,我们无法确定您所指的“/etc/su.allowed”文件的确切含义。不过,以下是一些可能的答案: 1. 如果您正在寻找如何编写一个允许特定用户使用su命令的“/etc/su.allowed”文件,那么您可以按照以下步骤操作: - 创建一个名为“/etc/su.allowed”的文件。 - 在文件中添加一行,格式为“username:source_user”。其中,“username”是您想要允许使用su命令的用户名,“source_user”是您想要允许该用户切换到的用户。 - 您可以在文件中添加多行,以允许多个用户使用su命令。 例如,如果您想要允许用户“bob”使用su命令来切换到用户“root”,则可以在“/etc/su.allowed”文件中添加以下行: bob:root 2. 如果您正在寻找如何编写一个允许特定程序使用su命令的“/etc/su.allowed”文件,那么您可以按照以下步骤操作: - 创建一个名为“/etc/su.allowed”的文件。 - 在文件中添加一行,格式为“username:command”。其中,“username”是您想要允许使用su命令的用户名,“command”是您想要允许该用户使用su命令来执行的命令。 - 您可以在文件中添加多行,以允许多个用户使用su命令。 例如,如果您想要允许用户“bob”使用su命令来执行命令“/usr/bin/mysql”,则可以在“/etc/su.allowed”文件中添加以下行: bob:/usr/bin/mysql 请注意,这种用法可能会存在安全风险,因为允许用户使用su命令来执行任意命令可能会导致系统被攻击。因此,我们建议您仅在必要时使用此方法,并仔细审查允许使用su命令的用户和命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚开发小咸鱼

原创不宜,请作者喝杯咖啡吧。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值