Loving Coding & Visual Design
mysql_real_escape_string在PHP5.2.9上的问题
按理说,mysql_escape_string和mysql_real_escape_string一样,除了mysql_real_escape_string接受的是一个连接句柄并根据当前字符集转移字符串。mysql_escape_string() 并不接受连接参数,也不管当前字符集设定。
可是今天却被我发现了问题,测试环境如下:
* Apache/2.0.63 (Unix)
* MySQL 客户端版本: 5.0.77
* PHP5.2.9
* MySQL 字符集: UTF-8 Unicode (utf8)
在转义一个中文单词“碧桂园”的时候发现被转义成乱码,倒数第二节字符后被插入5c,成了著名的5c漏洞(单引号转义漏洞:0xbf27 addslashes 转换后变为 0xbf5c2)。连接句柄和数据库都是utf8码,看不出有任何问题。换个环境PHP5.2.17并没有发现问题。
有趣的是PHP5.2.9的时候用mysql_escape_string却没有出现问题。看来要注意检测中文字符后的5c转义问题。
可是今天却被我发现了问题,测试环境如下:
* Apache/2.0.63 (Unix)
* MySQL 客户端版本: 5.0.77
* PHP5.2.9
* MySQL 字符集: UTF-8 Unicode (utf8)
在转义一个中文单词“碧桂园”的时候发现被转义成乱码,倒数第二节字符后被插入5c,成了著名的5c漏洞(单引号转义漏洞:0xbf27 addslashes 转换后变为 0xbf5c2)。连接句柄和数据库都是utf8码,看不出有任何问题。换个环境PHP5.2.17并没有发现问题。
有趣的是PHP5.2.9的时候用mysql_escape_string却没有出现问题。看来要注意检测中文字符后的5c转义问题。
最 近 文 章
- 关于轮胎的租车陷阱 - Mon, 27 Jun 2011 15:44:24 +0000
- Ckeditor在Firefox下没有拼写检查的问题 - Mon, 30 May 2011 01:58:59 +0000
- 第二次租车体验 - Wed, 04 May 2011 10:10:10 +0000
- XP遭遇死机 - Wed, 13 Apr 2011 12:57:44 +0000
- 再次出现Win7无法无线上网的问题 - Tue, 05 Apr 2011 08:52:44 +0000
- Flash 3D赶超WebGL - Thu, 31 Mar 2011 08:32:53 +0000
- Javascript Eval在Firefox3.6.16中无效 - Sat, 26 Mar 2011 08:01:01 +0000
- 收到一个莫名的投诉电话 - Thu, 24 Mar 2011 10:29:25 +0000
- 从Windows7回到XP - Tue, 22 Mar 2011 18:49:37 +0000
- VPS下IIS6网站的MYSQL无法自动启动的问题 - Tue, 22 Mar 2011 08:25:32 +0000