z

在平常做ctf的时候经常搞不懂为什么要将某些字符编码,今天学习之后才发现

URL中只能使用ASCII字符集可以显示的字符,如果需要在URL中使用不属于此字符集的字符,就要使用特殊的符号对该字符进行编码。

除了无法显示的字符,URL中对那些保留(reserved)字符和不安全(unsafe)字符进行编码。

保留字符是指那些在URL中具有特定意义的字符,不安全字符是指那些在URL中没有特殊含义,但在URL所在的上下文中可能具有特殊意义的字符。

当保留字符和不安全字符不是用作他原有的功能时,就需要进行编码,避免产生歧义,比如在查询参数中出现。

常见的保留和不安全字符

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