问答详情
源自:5-3 数据模型之单表查询

yii2.0 防sql注入问题

$model->find()->where(['id'=>$id])    //哈希格式

$model->find()->where("id=$id")  //字符串格式

$model->find()->where(['=','id',$id]) //操作符格式
三种查询方式,是否都是安全的?

提问者:我只是个孩子4367021 2017-06-08 20:04

个回答

  • 积极废人求生存
    2017-11-10 14:51:45

    我测试了下,可以告诉你的是,中间一个写法肯定是有问题的,不能防注入;第一个和第三个写法是等效的,可以防止部分注入,会把 $id 整体作为一个字符串 `id` = '1 and 7659=7659'  这样  and 是没有效果的

  • 噜噜猪Orz
    2017-06-09 22:58:30

    最安全的不是:id 么?