我正在使用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或“糟糕的浏览器扩展”等都会导致拒绝服务?
答案 0 :(得分:0)
默认情况下,Tomcat不读取unicode值。
您必须将URIEncoding属性设置为UTF-8
。您可以在/conf/server.xml
元素<Connector>
下配置它。
<强>参考强>: Tomcat configuration