请教如何对表单提交的数据进行过滤 [ 2.0 版本 ]
求教,如题。
如何对表单提交的数据进行过滤,避免注入攻击?
还是说:
/yii::$app->request->post();
或者
$model->load(/yii::$app->request->post());
已经对输入的字符串进行了过滤,不需要自己再动手了?
最佳答案
-
Yii2的过滤和验证正如你上面所写的load()方法那样,是建立在【场景】机制下的管理操作。
$model = new User(); $model->setScenario(User::SCENARIO_CREATE);//设置场景 $model->load(Yii::$app->request->post()//根据场景填充数据到模型$model if ( $model->save()) { //根据场景进行过滤和验证,无误后入库 return "success"; } else { return $model->getErrors(); }
你可以花10分钟先读一篇这个文档,这里都是Yii2在model层进行输入验证和过滤起作用的地方:
https://www.yiichina.com/doc/guide/2.0/input-validationsql注入的问题,我觉得php各个框架都差不多,因为PDO在底层已经解决了一大部分这方面的问题。
各个框架的ORM都会有的。Yii2是AR,model;laravel就是eloquent类似。几乎不用担心SQL注入问题,除非自己坑自己。
建议把数据库部分看看,也许心里会有点感觉吧!共 1 条回复
其他 1 个回答
sk811229
注册时间:2018-05-23
最后登录:2022-10-06
在线时长:16小时47分
最后登录:2022-10-06
在线时长:16小时47分
- 粉丝0
- 金钱770
- 威望10
- 积分1030