文档章节

解决Invalid character found in the request target. The valid characters are defined in RFC 7230 and RF

卢磊磊
 卢磊磊
发布于 2017/07/20 14:42
字数 307
阅读 378
收藏 0

tomcat的get请求中出现特殊字符:|,{}等,解决的办法,测试了7.0.73版本,修改catalina.properties,但是并不成功。最后还是使用低版本的,希望有其他方法的同学找到好办法告知。

比较好的解释:

(1)http://blog.cangzhitao.com/post/exception/Invalid-character-found-in-the-request-target.htm

(2)

通过这里的回答,我们可以知道:

Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证。

具体来说,就是添加了些规则去限制HTTP头的规范性

参考这里

具体来说:

org.apache.tomcat.util.http.parser.HttpParser#IS_NOT_REQUEST_TARGET[]中定义了一堆not request target

if(IS_CONTROL[i] || i > 127 || i == 32 || i == 34 || i == 35 || i == 60 || i == 62 || i == 92 || i == 94 || i == 96 || i == 123 || i == 124 || i == 125) {
                IS_NOT_REQUEST_TARGET[i] = true;
            }

转换过来就是以下字符(对应10进制ASCII看):

  • 键盘上那些控制键:(<32或者=127)
  • 非英文字符(>127)
  • 空格(32)
  • 双引号(34)
  • #(35)
  • <(60)
  • >(62)
  • 反斜杠(92)
  • ^(94)
  • TAB上面那个键,我也不晓得嫩个读(96)
  • {(123)
  • }(124)
  • |(125)

 

 

解决办法:

还是参考这里

即:

配置tomcat的catalina.properties

添加或者修改:

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

 

当然还有另外一种方法,就是将所有的参数都进行编码

本文转载自:http://www.cnblogs.com/hark0623/p/6977737.html

共有 人打赏支持
卢磊磊
粉丝 0
博文 93
码字总数 16021
作品 0
昌平
程序员
私信 提问
遇到一个问题,标记下

Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986...

mifans
2016/11/18
245
1
tomcat报错Error parsing HTTP request header

tomcat 7.0.75,jdk1.7.0.80,运行中报错Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 tomcat配置:...

Mr-想
2017/02/23
7.2K
3
【linux】tomcat新版本特性引发的url问题

通过我们的测试,在tomcat7.0.73版本以上都会出现下列描述的问题。 1、测试报错: Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. java.lang.Ill...

anank
07/02
0
0
TOMCAT9 服务器问题

HTML代码 我的表单 u: 超链接

山豆根
2017/05/08
59
0
invalid character found in the request target 异常

这个异常时因为Tomcat 9不支持请求格式出现“{”等非法字符的问题 因为tomcat版本问题遇到的坑,记录一下。 问题 今天由于要测试一下订单详情页的异步查询,在本地起了一个服务,发送的请求是...

edwardGe
08/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

solr使用规范

0. 目的 规范solr设计、用法,避免bug,提高性能 1. 设计规范 solr的用途是查询,不是存储,建议查询结果尽量都为id主键,而后再拿该id主键到缓存或者db中再查询相关信息,例如:请勿将经销商...

andersChow
8分钟前
0
0
11-《深度拆解JVM》之Java对象的内存布局

一、问题引入 在 Java 程序中,我们拥有多种新建对象的方式。除了最为常见的 new 语句之外,我们还可以通过反射机制、Object.clone 方法、反序列化以及 Unsafe.allocateInstance 方法来新建对...

飞鱼说编程
13分钟前
0
0
Windows Install Docker

win7、win8 win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ docker toolbox...

linuxprobe16
17分钟前
0
0
混合云环境中扩展Kubernetes的挑战及方案

流量突增时,我们需要扩展应用程序以满足用户需求。本文分享了扩展Kubernetes以及管理混合云环境时可能遇到的挑战,以及如何简单高效地完成Kubernetes扩展。 引 言 假设您的业务是在线的:您...

RancherLabs
25分钟前
0
0
Java集合小抄

Java集合小抄 1. List 1.1 ArrayList 以数组实现。节约空间,但是数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组。因此最好能给出数组大小的预估值。默认第一...

傅小水water
33分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部