GWA2更新:SQL语句写入数字型字符串


GWA2的核心处理DB连接及查询处理时,会对用户的输入做安全性过滤,

如在 inc/dba.class.php中对用户输入进行封装,并将结果交给指定的inc/mysql.class.php去处理。

在inc/mysql.class.php中,会将用户的输入去除转义字符,在非数字的字符串上加上引号。其判断逻辑是:

if(!is_numeric($value)){

$value = “‘”.mysql_real_escape_string($value,$this->m_link).”‘”;

}

通常这样做是没有问题的,但如果想在数据表中存入数字型字符串,比如在一个应用中的目录代码是 01010003 , 在使用 is_numeric时,返回的就会是true:

is_numeric(’1010003′); # true

is_numeric(’010100003′); # true

遇到这种情况,就不能使用GWA2的安全套件,如$obj->setBy, $obj->getBy等,但可以使用$obj->execBy, 这个方法允许用户自行组装SQL语句,从而避开原有的检查程序的缺陷。

 ----

url4p: -r/gwa2-update

http://ufqi.com/blog/gwa2-update-sql-num-string/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值