@ZEAL Blog·厉
We stand alone,
TOGETHER.

ZF的quoteInto引起MD5错误

Posted by zeal on 2007-11-25 09:24 , 356 characters |  + 0 - 0   English
转载请保留本行原始出处声明信息 : http://www.zeali.net/entry/547 MaDe1nZEAL
标签 ( PHP ):  ,  ,  , 

在 Zend Framework 中, Db_Adapter 提供 quoteInto 方法用于查询变量嵌入的统一处理。但在该方法最终调用的底层方法 _quote 中,会用 is_numeric 先判断变量是否是数字,如果是的话就直接返回了,只有非数字型的内容才会被进行转义并加引号。

这样的处理带来的问题是,当你使用数据库自带的 MD5 函数对字符串(比如用户密码)进行 md5 加密时,如果恰好字符串是纯数字,又恰好是0打头的数字,比如“07902”,这时候 MD5(07902)MD5('07902') 返回的结果是不一样的,从而造成潜在的数据错误。

一般我都习惯于给所有的变量都加上引号,不知道 zf 是基于什么考虑对数字型变量进行单独处理。。

没有评论.
Since 2005.04.27  梦想 就像鸡蛋 要么孵化 要么臭掉RSS Feed (Entries) | Back To Home | @ZEAL | 沪ICP备05024379号