Tomcat 8.5:允许BackSlash

问题描述 投票:0回答:1

我正在配置NetIQ IDAM,NetIQ IDAM的一个组件即User Application在预配置的Tomcat 8.5.x上运行。 User Application具有一些预定义的功能,可以在URL中强制执行反斜杠,但tomcat会阻止URL中的BlackSlashes作为安全措施。

我尝试使用这些选项:

-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
-Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true

但没用

并且由于组件的一部分不可自定义,除了以某种方式配置tomcat以允许URL中的反斜杠之外,我没有任何其他选项。

任何建议我如何实现这一目标。

HTTP请求示例:?targetName = abc @ xyz \ .com

tomcat tomcat8
1个回答
2
投票

客户端坏了。当在查询字符串中使用时,RFC 7230和RFC 3986要求\字符是%nn编码的。

通常,Tomcat社区实现规范并将任何非规范合规性视为错误。 Tomcat社区期望其他开发人员社区也这样做。

不幸的是,浏览器供应商选择忽略RFC 7230和RFC 3986的%nn编码要求,尽管声称自己正在按照自己的规范工作,但最终结果是每个主要浏览器%nn编码不同的子集需要编码的字符数。

对你来说好消息是,由于这个混乱,Tomcat 9.0.8,8.5.21,8.0.52和7.0.87将引入(这些版本仍然在我输入时投票)选项允许直接在URI路径和/或查询字符串中使用字符而不使用%nn编码。

一旦这些版本可用,您将能够配置Tomcat以接受查询字符串中的\。同时,无论如何,我建议针对规范不合规提出针对客户端的错误。最好有一个正常工作的客户端,以便您可以放弃在Tomcat中解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.