【问题标题】:Is addInCondition() method in CDbCriteria "SQL-injection proof"?CDbCriteria 中的 addInCondition() 方法是“SQL 注入证明”吗?
【发布时间】:2014-12-22 18:47:10
【问题描述】:

我想将 CDbCriteira addInCondition() 用于多个输入参数(数字未预定义)。此方法是否构成参数化查询? 我发现对此有争议的想法:

  1. yes - “由于它使用 CDbCriteria,我认为它是安全的” - 引用。
  2. no

我也看过the addInCondition() method specification,但我不清楚。

【问题讨论】:

    标签: php yii sql-parametrized-query yii-cactiverecord


    【解决方案1】:

    这部分代码:

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

    似乎是用于存储参数化值。

    然后在查询生成器中,它会将它们用作数字参数。

    我在自己编写的脚本中这样做,我真的怀疑钱(或其他人)会错过它并留下代码注入。

    另外,你测试了吗?您可以添加随机 SQL 并查看它是否被转义。

    【讨论】:

    • 我没有测试,因为到目前为止我无法打破绑定字符串参数(数量未知)。
    猜你喜欢
    • 2010-12-22
    • 2017-12-06
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2022-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多