路径匹配的怪异问题

Posted by bfpiaoran on June 9, 2020

由于穷 用了github的博客 md语法不熟悉 也懒得折腾 就一直放在这了 接之前验签的问题 公司也有不少其他问题 关于过滤器 — 问题在于路径问题 通用方法为了实现一个api验签接口 而设计了一个注册方法 之前一直以为是getRequestURI实现的锅,现在才发现错怪他了 问题在FilterConfiguration.java 和spring boot版本的问题 pom配置一直防止高版本不兼容一直用的低版本 而低版本默认是开启路径匹配后缀的关于路径匹配

而问题恰恰出在这个默认属性上 如果开启的话 /inter/users.* 会路由到/inter/users的路由上 而在注册过滤器上全路径注册如下面

        registration.setName("internalSignatureFilterRegistration");
        registration.setFilter(internalSignatureFilter);

        registration.addUrlPatterns("/inter/users");

那么如果我们请求的地址是/inter/users.do 根据路径匹配会路由到/inter/users
而过滤器因为是全路径匹配 不会吧该request 注册到对应的过滤方法下面 从而导致了绕过filter的问题

由着个问题 引发一个思考 公司为了问题可能一直用一个版本的java web框架 而这个版本存在好多小坑 那就导致存在安全隐患,而公司开发不会仔细阅读额官方docs 安全人员也没精力阅读。从而导致安全风险