URL 解码
variable1=value&variable2=value2
对于在表单中定义的每个变量都是这样。
变量由 & 符号隔开。如果逆向发送一个实际的符号,则它必须被转义,即,以一个两位数字的16进制值编码来代表字符。在URL-编码中由百分号指示。因此,%25表示百分号本身(25是16进制的,或者说以16为基,代表百分号的ASCII码值)。所有127(7hex)以上和33(21hex)以下的所有字符被转义,这包括空格符,它的专义码为%20。同时加号需要被解释作空格符。
脚本处理数据前必须对其进行分析和解码。幸运的是,在大多数编程语言中,这个工作是非常简易的。你的脚本可以对整个串进行扫描,寻找&符号。当找到一个时,脚本在这一点断开串,将前面的内容作为一个变量。变量名是符号前面的东西,值是等号后面的东西。脚本接下来对下一个&符号进行分析,如此继续,直至结束。
分割变量之后,可以安稳的对其解码,按如下步骤进行:
* 用空格代替全部加号;
* 用相应的ASCII字符代替所有%##(百分号后更两位16进制数字)
脚本线性的扫描整个串,而不是循环,这很重要,因为脚本解码的字符会有加号和百分号。
当服务器的POST方法将数据传给你的表单时,脚本检查你的环境变量CONTENT_TYPE 为 application/x-www-form-urlencoded,你的数据需要在使用前解码。
原来还需要16进制的转换,我以为就是ascii,今天才注意了一下--!