Tomcat无法处理cookie中带编码字符的请求

时间:2015-07-22 18:34:45

标签: tomcat cookies

我正在使用Tomcat 8作为servlet容器。我的一个实验给出了有趣的结果。

我使用“EditThisCookie”Chrome扩展程序添加俄语文本(UTF-8)的Cookie。请求看起来像:

#!/bin/sh
...
nohup sh -c mongod --dbpath /test &
...

服务器返回500错误,空白页。

在catalina.log中:

GET / HTTP/1.1
Host: localhost
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.17 (KHTML, like Gecko) Chrome/33.0.2045.89 Safari/536.17
DNT: 1
Accept-Encoding: gzip, deflate, sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: test=ТеÑÑ

这是否意味着任何存储的XSS或“糟糕的浏览器扩展”等都会导致拒绝服务?

1 个答案:

答案 0 :(得分:0)

默认情况下,Tomcat不读取unicode值。 您必须将URIEncoding属性设置为UTF-8。您可以在/conf/server.xml元素<Connector>下配置它。

<强>参考Tomcat configuration