2017-09-25 169 views
0

通过load()方法将数据加载到模型中是否安全? 在$模型中,只有名称和电子邮件属性,只有“字符串”验证器。

if ($model->load(Yii::$app->request->post() && $model->save()){ 

} 

当我做了如上所示的东西,它是否安全的对sql注入?

回答

2

是的! (对不起,我无法抗拒这个笑话)。

实际上模型是数据库的抽象,所以它不关心你正在使用哪个DB和/或可能发生什么问题。通常,在Yii2中,大部分数据库操作都是通过ActiveRecord进行的,它使用PDO prepared statements 来防止SQL注入攻击。

如果您不会使用ActiveRecord,我建议您阅读this

+0

究竟是什么“字符串”验证程序呢?它如何防止sql注入? –

+0

它检查值是一个字符串,并满足您指定的其他限制(如果有的话)。防止SQL注入来自ActiveRecord内部PDO语句,请检查我的更新答案 – gmc