Tomcat URL 有特殊字符问题

Tomcat 早起版本是支持特殊字符的,不过后来版本中认为这些字符是不安全的(unsafe),所以不能直接在URL 中对这些字符直接传入,需要编码来表示,有人提出异议后Tomcat给开发人员留了个后门 ,可以自行配置:

修改conf文件夹下的catelina.properties文件:tomcat.util.http.parser.HttpParser.requestTargetAllow=|{} #仅限于|,{,}三种
Tomcat URL 有特殊字符问题_第1张图片
这个方式仅支持|{}三种,其他字符是不能配的,所以用的时候需要将传的时候做一个转换,具体如下:

字符 描述 用法 编码
; 分号 保留 %3B
/ 斜线 保留 %2F
? 问号 保留 %3F
: 冒号 保留 %3A
@ “at”符号 保留 %4
= 等号 保留 %3D
& “和”符号 保留 %26
< 小于号 不安全 %3C
> 大于号 不安全 %3E
" 双引号 不安全 %22
# 井号 不安全 %23
% 百分号 不安全 %25
{ 左大括号 不安全 %7B
} 右大括号 不安全 %7D
竖线 不安全 %7C
\ 反斜线 不安全 %5C
^ 加字号 不安全 %5E
~ 波浪 不安全 %7E
[ 左中括号 不安全 %5B
] 右中括号 不安全 %5D
` 反单引号 不安全 %60
空格 不安全 %20

直接使用编码替换原字符就可以。

你可能感兴趣的:(休闲)