当前位置: 首页 > 知识库问答 >
问题:

如何在tomcat 8.5的URL中允许^character

狄阳秋
2023-03-14

我有一个以下格式的请求URL

http://hostname:port/path&param1={"vars":[{"a":"val1","b":"^"},{"c":"val2","d":"^"}]}&param2=Value3|95|3%20-%206%20Months

我换了卡塔琳娜。属性与此问题一致。

但是根据tomcat留档tomcat.util.http.parser.HttpParser.requestTarget允许属性不建议使用,并将其与Connector标记一起使用。

但是,当我将xml文件更改为下面的

 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" relaxedQueryChars="^" relaxedPathChars="^"/>

我对这个角色的要求仍然很差^

我不确定这是否是正确的配置。

共有2个答案

朱岳
2023-03-14

需要使用unicode而不是literal

relaxedQueryChars="&#x5B;&#x5D;&#x7C;&#x7B;&#x7D;&#x5E;&#x5C;&#x60;&#x22;&#x3C;&#x3E;"
&#x5B; -> [
&#x5D; -> ]
&#x7C; -> |
&#x7B; -> {
&#x7D; -> }
&#x5E; -> ^
&#x5C; -> \
&#x60; -> `
&#x22; -> "
&#x3C; -> <
&#x3E; -> >

陆运乾
2023-03-14

理想情况下,在将请求发送到服务器之前,应该始终对查询参数进行URL编码。阅读:https://www.talisman.org/~erlkonig/misc/lunatech^每个网络开发人员都必须了解url编码/

如果您想使用relaxedQueryChars路径,请注意,查询中的以下字符也在您应该添加到异常中的集合中:“{}[]^ |

在你的服务器上试试这个。xml:

<代码>

更多关于bug票证62273的信息。更改已添加到Tomat的所有分支:

  • 9.0.8

我认为您根本不需要relaxedPathChars属性(这指的是URL路径上的字符)。然而,Tomcat团队的测试结果似乎表明,可以使用以下方法来实现最大的向后兼容性:

放松PathChars='[]|' 放松QueryChars='[]|{}^

注意:您的查询的第一个参数应该用?不

超文本传输协议参数1=...

 类似资料:
  • 使用下面的配置,我必须将“.html”附加到任何URL模式,以便将其映射到适当的控制器。如何将Thymeleaf配置为也允许模式,例如,而不仅仅是?

  • 我在javascript中使用Reactjs和通过AJAX使用API。我们如何解决这个问题?以前我使用CORS工具,但现在我需要启用CORS。

  • 问题内容: 我有从本地主机运行的webapp(由于调试),它发出了跨域AJAX请求。我可以轻松地为Chrome设置标志“ –disable-web- security”,并且webapp可以在Chrome中按预期工作。但是我也需要在Windows上的Safari中执行此操作。是否有一些类似的标志,或者可以在“首选项”中的某个位置进行设置? 感谢帮助。 问题答案: 解决方案是在服务器上设置标头。 在

  • 我有两个域名。 我尝试使用JavaScript标记,在用户对域2进行一些操作之后,使用一切正常,但在最后一步,我得到了跨原点错误。 如何在PHP中允许访问域1上的跨源? 编辑 我的问题不是这个问题的可能重复,因为我问的是PHP。 解决方案 只需在打开PHP标签后的代码开头添加,这将允许从任何来源(网站)进行访问。 如果要限制访问,请将替换为源站(网站)url,如

  • 从终端创建myDSL语法 起点,包含行列表 每一行都可以选择以LABEL开始,然后以关键字开始 这个语法适用于单引号中有空格的字符串。但是它有很多错误/警告 警告(200):/组织。xtext。实例mydsl/src gen/org/xtext/example/mydsl/parser/antlr/internal/InternalMyDsl。g:309:3:决策可以使用多个选项匹配输入,例如“R