是CDbWriter中的addInCondition()方法“;SQL注入证明”;


Is addInCondition() method in CDbCriteria "SQL-injection proof"?

我想对多个输入参数使用CDbRiteira addInCondition()(数字不是预定义的)。此方法是否组成参数化查询?我发现了有争议的想法:

  1. 是的-"由于它使用CDbWriter,我认为它是安全的"-引用

此外,我还查看了addInCondition()方法规范,但我无法弄清楚。

这部分代码:

$condition=$column.'='.self::PARAM_PREFIX.self::$paramCount;
$this->params[self::PARAM_PREFIX.self::$paramCount++]=$value;

似乎用于存储参数化值。

然后在查询生成器中,它将使用它们作为计数参数。

我在自己制作的脚本中就是这样做的,我真的怀疑钱(或其他什么)会错过它并留下代码注入。

还有,你测试过吗?您可以添加随机SQL,看看它是否被转义。