龙空技术网

Tomcat不安全字符的处理

三个女儿的爸爸fw 305

前言:

今天朋友们对“apachebugzilla配置”大约比较讲究,兄弟们都需要学习一些“apachebugzilla配置”的相关知识。那么小编也在网上网罗了一些对于“apachebugzilla配置””的相关知识,希望姐妹们能喜欢,兄弟们一起来学习一下吧!

做项目的时候碰到一个问题,就是Tomcat在处理含有|,{,}的字符的Url时候,发现请求没有到达指定的Controller上面,而在Access_log中写入了get null null 400的错误信息,从网上也翻了几个资料最终确定是tomcat的一个问题(个人觉得也是一个缺陷)

问题的由来

Tomcat根据rfc的规范Url中不能有类似|,{,}等不安全字符串,但在实际的操作中有时为了数据完整性和加密的方式都需要有|,{,}出现,这样的话Tomcat会直接告诉客户端Bad Request.

对于这个问题,很多人也提出很多不同的看法:,经过修改,最终Tomcat把权限开放出来,通过tomcat.util.http.parser.HttpParser. requestTargetAllow这个配置选项,允许不安全字符的出现。Tomcat详细配置

解决方法

经过几次探索,有以下几个方法能够解决这个问题:

把请求的Url进行编码,这个对源头进行处理,来规避这个问题,如果是第三方来调用的url就无能无力。修改Tomcat的配置文件(Tomcat\conf\catalina.properties),适用tomcat 7以上的版本

 tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}

3.使用其它服务器进行中转,比如IIS和Apache

(本文完)

点击右上角关注作者,加关注不迷路,欢迎交流

标签: #apachebugzilla配置