如何在tomcat 8.5的URL中允许^字符

萨钦·库玛(Sachin Kumar)

我的请求网址格式如下

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

我根据这个stackoverflow问题更改了catalina.properties

但按照Tomcat文档 tomcat.util.http.parser.HttpParser.requestTargetAllow财产已被弃用,relaxedPathCharsrelaxedQueryChars属性要与连接器标签代替。

但是,当我将xml文件更改为以下内容时

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

我仍然收到400错误的字符请求^

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

埃德·兰德尔

理想情况下,在将请求发送到服务器之前,应始终对查询参数进行URL编码。阅读:https : //www.talisman.org/~erlkonig/misc/lunatech%5Ewhat-every-webdev-must-know-about-url-encoding/

如果您想沿着relaxedQueryChars路线行驶,请注意,来自查询的以下字符也在您应添加到异常的集合中: " { } [ ] ^ |

在您的server.xml中尝试以下操作:

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" relaxedQueryChars='^{}[]|&quot;' />

错误票证62273上可以更深入地了解RelaxedQueryChars / relaxedPathChars所做的更改已添加到Tomat的所有分支中:

  • 9.0.8
  • 8.5.31
  • 8.0.52
  • 7.0.87

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

relaxedPathChars='[]|' relaxedQueryChars='[]|{}^&#x5c;&#x60;&quot;&lt;&gt;' />

nb /您查询的第一个arg应该用?划界。不是&

http://hostname:port/path?param1=...&param2=...&param3=...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

bash别名中允许哪些字符

如何验证Java中允许通配符(*,%)的URL(domain)

如何在Spring Security中允许单个URL

文件名中允许的字符

URL中允许的字符

如何在String.split()中允许空字符串?

如何在ASP.NET MVC5中允许URL包含点?

如何在MySQL中允许将空字符串用作整数?

MarkLogic 8用户名和角色中允许使用哪些字符?

我的MVC应用程序如何在web.config中允许unicode字符?

主题标签中允许使用哪些字符

如何在JSON_VALUE中允许特殊字符

如何在JavaScript函数中允许字符串包含'

在UITextfield iOS中允许德语UMLAUT字符

如何在PyQt5中允许Tab键按下事件

在SQL Server中允许希伯来语字符

如何在电子邮件字段的验证中允许更多字符?

如何在正则表达式的例外中允许字符和空格?

如何在电子邮件验证中允许特殊字符?

如何在Tomcat中允许多个IP地址?

输入日期时如何在输入字符串中允许使用日名?

如何在HTML5-视频中允许快退但禁用快进

如何在不允许特殊字符的文本框中允许日语文本

我可以在使用htaccess的动态加载页面中允许URL中的连字符吗?

如何在 UITextField 中只允许没有任何空格和正好 8 个字符的数字和字母

如何在 Symfony 中的基本 url 后允许“/”字符?

如何在 Rewrite_Map 中允许特殊字符?

如何在tomcat中允许对websockets进行编码斜杠?

如何在 mvc core 3.1 中允许多个连字符操作方法名称?