我已经处理了URL篡改的情况,其中我使用了正则表达式过滤器来比较查询字符串,并且如果其中包含任何esacpe或特殊字符,它将返回自定义消息“无效参数”,该消息显示在屏幕。
现在,在我们使用JBOSS 6.4.10之前,它一直运行良好,但是将其升级到JBOSS 6.4.20之后,它甚至没有命中过滤器,JBOSS 6.4.20正在验证具有转义字符/大括号的请求URI。以我为例,并抛出400错误的请求错误。
请避免提供升级到JBOSS 7等解决方案。我知道JBOSS 7具有标志“ ALLOW_UNESCAPED_CHARACTERS_IN_URL”已解决了此问题,但我不能使用JBOSS 7。
答案 0 :(得分:0)
据我所知,此行为与以下安全漏洞有关:CVE-2016-6816。
尝试使用tomcat.util.http.parser.HttpParser.requestTargetAllow
系统属性。此属性值中列出的所有字符将再次被允许。另一种选择是降级到JBoss EAP 6.4.12或更早的版本。
答案 1 :(得分:0)
在自变量Standalone.conf
文件中添加以下内容
JAVA_OPTS="$JAVA_OPTS -Dtomcat.util.http.parser.HttpParser.requestTargetAllow='{|}'"