2017-09-25 1 views
0

load()メソッドを使用してモデルにデータをロードすることは安全ですか? $ modelには名前と電子メールのプロパティだけがあり、 "string"バリデーターしかありません。

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

} 

私が上記のようなことをすると、SQLインジェクションに対して安全ですか?

答えて

2

はい! (私はジョークに抵抗することができなかった申し訳ありません)。

実際には、モデルはデータベースの抽象化であるため、使用しているDBや問題が発生する可能性はありません。通常、Yii2ではほとんどのDB操作がActiveRecord経由で行われますが、これはPDO prepared statements を使用してSQLインジェクション攻撃を防ぎます。

ActiveRecordを使用しない場合は、thisとお読みください。

+0

正確に「文字列」バリデータとは何ですか?どのようにSQLインジェクションを防止する? –

+0

値が文字列であることを確認し、指定した追加の制限(ある場合)を満たします。 SQLインジェクションからの保護は、ActiveRecordの内部PDOステートメントから来て、私の更新された答えをチェックする – gmc

関連する問題