Yii CDbCriteria中的“订单”属性是否安全?
以下代码对SQL注入是否安全Yii CDbCriteria中的“订单”属性是否安全?,yii,Yii,以下代码对SQL注入是否安全 $criteria = new CDbCriteria(); $arySort= json_decode($_GET['sort']); $criteria->order= $arySort[0]->property . ' ' . $arySort[0]->direction; Person::model()->findAll($criteria); 如果没有,我应该如何确保CDbCriteria对象的order属性没有危险 我应该使
$criteria = new CDbCriteria();
$arySort= json_decode($_GET['sort']);
$criteria->order= $arySort[0]->property . ' ' . $arySort[0]->direction;
Person::model()->findAll($criteria);
如果没有,我应该如何确保CDbCriteria对象的order属性没有危险
我应该使用吗?我认为不仅仅考虑sql注入是不够的。您必须检查json数组中的数据,因为可能会发送错误的字段名或方向 所以 PS 在使用CGridView的情况下
public function search()
{
$criteria=new CDbCriteria;
$criteria->compare('t.id',$this->id);
$criteria->compare('t.title',$this->title,true);
$criteria->compare('content',$this->content,true);
$criteria->compare('url',$this->url,true);
return new CActiveDataProvider(
$this,
array(
'criteria'=>$criteria,
'sort'=>array(
'defaultOrder'=>'title ASC',
'attributes'=>array(
'*'
)
),
'pagination'=>array(
'pageSize'=>20,
),
)
);
}
您使用CGridView来呈现数据吗?不,我使用的是ExtJs。然而,我不认为CGridView能起到什么作用。
public function search()
{
$criteria=new CDbCriteria;
$criteria->compare('t.id',$this->id);
$criteria->compare('t.title',$this->title,true);
$criteria->compare('content',$this->content,true);
$criteria->compare('url',$this->url,true);
return new CActiveDataProvider(
$this,
array(
'criteria'=>$criteria,
'sort'=>array(
'defaultOrder'=>'title ASC',
'attributes'=>array(
'*'
)
),
'pagination'=>array(
'pageSize'=>20,
),
)
);
}