2017-09-25 52 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