|
该漏洞最早2006年被国外用来讨论数据库字符集设为GBK时,0xbf27本身不是一个有效的GBK字符,但经过 addslashes() 转换 后变为0xbf5c27,前面的0xbf5c是个有效的GBK字符,所以0xbf5c27会被当作一个字符0xbf5c和一个单引号来处理,结果漏洞 就触发了。 mysql_real_escape_string() 也存在相同的问题,只不过相比 addslashes() 它考虑到了用什么字符集来处理,因此可以用相 应的字符集来处理字符。在MySQL 中有两种改变默认字符集的方法。 方法一: 改变mysql配置文件my.cnf CODE: [client] default-character-set=GBK 方法二: 在建立连接时使用 CODE: SET CHARACTER SET 'GBK' 例:mysql_query("SET CHARACTER SET 'gbk'&qu
更多...
|