我有一个模型User
,假设我从该模型创建了一个新对象
$x = new User;
并从 _POST var 设置其属性
$x->lastName = $_POST["last_name"];
如果我做了
$x->save();
它会受到 SQL 注入的保护吗?
谢谢
我有一个模型User
,假设我从该模型创建了一个新对象
$x = new User;
并从 _POST var 设置其属性
$x->lastName = $_POST["last_name"];
如果我做了
$x->save();
它会受到 SQL 注入的保护吗?
谢谢
当您首先执行$model->save()
模型的验证时,您的变量将根据模型中定义的验证规则进行验证,如果有错误,则模型将不会被保存,值不会进入您的数据库,因此没有注射。
验证规则在模型的规则数组中定义,已经有许多内置的验证类,这是一篇很好的 wiki 文章,提供了验证器类的入门知识。
您还可以定义自己的验证器。
因此,只要您正在清理(或验证)您的输入,您就可以开始了。
Yii 使用 PDO 进行连接,所以是的,它不会受到 SQL 注入的影响。
但它对 XSS 并不安全。http://www.yiiframework.com/doc/guide/1.1/en/topics.security http://www.yiiframework.com/wiki/275/how-to-write-secure-yii-applications/#hh11