• The request was rejected because the URL contained a potentially malicious String “%2e“


    https://blog.csdn.net/qq_42483257/article/details/122426009?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7.pc_relevant_antiscanv2

    The request was rejected because the URL contained a potentially malicious String “%2e“

    脑神

    于 2022-01-11 10:38:59 发布

    255
    收藏
    分类专栏: 实际问题 文章标签: java
    版权

    实际问题
    专栏收录该内容
    2 篇文章0 订阅
    订阅专栏
    日志出现:
    [http-nio-80-exec-3] ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception

    org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentially malicious String "%2e"

    原因:
    在我使用的 Spring Security 框架中提供了一个 HttpFirewall,这是一个请求防火墙,它可以自动处理掉一些非法请求,请求地址格式中不能包含;、// 、 % .......等字符或编码,必须是标准化 URL。

    解决方法:
    如果希望请求地址中可以出现 ; 或编码后的字符 %3b 或者 %3B,可以按照如下方式配置:

    @Bean
    HttpFirewall httpFirewall() {
    StrictHttpFirewall firewall = new StrictHttpFirewall();
    firewall.setAllowSemicolon(true);
    return firewall;
    }
    // 设置完成上一步之后,再次访问相同的接口错误是 404 需要再配置SpringMVC 使 ; 不要被自动移除
    @Configuration
    public class WebMvcConfig extends WebMvcConfigurationSupport {
    @Override
    protected void configurePathMatch(PathMatchConfigurer configurer) {
    UrlPathHelper urlPathHelper = new UrlPathHelper();
    urlPathHelper.setRemoveSemicolonContent(false);
    configurer.setUrlPathHelper(urlPathHelper);
    }
    }
    如果你希望请求地址中可以出现 // ,可以按照如下方式配置:

    @Bean
    HttpFirewall httpFirewall() {
    StrictHttpFirewall firewall = new StrictHttpFirewall();
    firewall.setAllowUrlEncodedDoubleSlash(true);
    return firewall;
    }
    如果希望请求地址中可以出现 %,可以按照如下方式配置:

    @Bean
    HttpFirewall httpFirewall() {
    StrictHttpFirewall firewall = new StrictHttpFirewall();
    firewall.setAllowUrlEncodedPercent(true);
    return firewall;
    }
    如果希望请求地址中出现 / 编码后的字符 %2F 或者 %2f ,可以按照如下方式配置:

    如果希望请求地址中出现 \ 编码后的字符 %5C 或者 %5c ,可以按照如下方式配置:

    @Bean
    HttpFirewall httpFirewall() {
    StrictHttpFirewall firewall = new StrictHttpFirewall();
    firewall.setAllowBackSlash(true);
    firewall.setAllowUrlEncodedSlash(true);
    return firewall;
    }
    如果希望请求地址中出现 . 或编码之后的字符 %2e、%2E,可以按照如下方式配置:

    @Bean
    HttpFirewall httpFirewall() {
    StrictHttpFirewall firewall = new StrictHttpFirewall();
    firewall.setAllowUrlEncodedPeriod(true);
    return firewall;
    }
    总结:
    虽然我们可以手动修改 Spring Security 中的这些限制,但是不建议大家做修改,每一条限制都有它的原由,每放开一个限制,就会带来未知的安全风险。
    ————————————————
    版权声明:本文为CSDN博主「脑神」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_42483257/article/details/122426009

  • 相关阅读:
    捕获控制台输出信息
    .net 值类型变量赋值需要注意
    《河北省实施〈中华人民共和国道路交通安全法〉办法》
    在Win7应用程序中使用盾牌图标
    32位WIndows 7的“快速启动”,重启后丢失的问题,被确认是一个bug
    在本地网页中,让flash可以访问本地文件
    WPF 3D编程中,摄像机的位置很重要
    让Windows7任务栏图标显示Windows菜单(恢复,最小化,关闭)
    Joomla 书籍
    Joomla! 1.5 Template Toolbar简化Joomla模板做成的工具
  • 原文地址:https://www.cnblogs.com/jishumonkey/p/16053410.html
Copyright © 2020-2023  润新知