文章目录
前言
自我学习之路—宽字节注入
一、什么是宽字节注入?
先了解一下什么是窄、宽字节已经常见宽字节编码:
当某字符的大小为一个字节时,称其字符为窄字节.
当某字符的大小为两个字节时,称其字符为宽字节.
所有英文默认占一个字节,汉字占两个字节
常见的宽字节编码:GB2312,GBK,GB18030,BIG5,Shift_JIS等
1.1宽字节的原理-理解
如果数据库使用的的是GBK编码而PHP编码为UTF8就可能出现注入问题。
1.2宽字节注入产生原因
序员为了防止SQL注入,就会调用一下三个函数
- addslashes() 函数 返回在预定义字符之前添加反斜杠的字符串
- mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符
- mysql_escape_string() 转义一个字符串,将单引号或双引号进行转义操作