SQL注入防御绕过――二次编码之干掉反斜杠
SQL注入防御绕过――二次编码 01 背景知识 一、为什么要进行URL编码 通常如果一样东西需要编码,说明这样东西并不适合传输。对于URL来说,编码主要是为了避免引发歧义与混乱。 例如,URL参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如 /?name=abc&pwd=123 如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的&和= 符号进行转义,也就是对其进行编码。 对于URL编码的深入研究可以参看下面这些内容: 为什么要进行URL编码 深入分析 web 请求响应中的编码问题 二、URL传输过程中的编码问题 HTTP请求过程经历的几个环节: 浏览器【get/post】①========>服务器②========>浏览器显示③ ①:浏览器会把URL经过编码后发送给服务器,不同的浏览器对URL的编码规则不同。对于GET方式提交的数据,浏览器会自动进行URL编码;对于POST方式提交的数据,其编码方式可以由开发者进行指定。 ②:服务器根据其自身的配置文件对URL进行解码(解码成Unicode),然后将显示内容编码。 ③:浏览器按照指定的编码显示该网页。 此外,在客户端也就是浏览器上运行的前端程序也会根据Web服务的需要对要传输的数据进行一些编码操作