AR 绑定参数的问题 [ 2.0 版本 ]
如下程序:
public actionInfo($name, $flag)
{
$info = Manage::find()->where(['name'=>$name,'flag'=>$flag])->all();
........
}
这样写的话有没有问题,其中的 $name
, $flag
需不要做做参数绑定来防止攻击呢?
最佳答案
-
使用哈希格式,Yii 在内部对相应的值进行参数绑定,与 字符串格式 相比, 此处你不需要手动添加参数绑定。但请注意,Yii 不会帮你转义列名,所以如果你 从用户端获得的变量作为列名而没有进行任何额外的检查,对于 SQL 注入攻击, 你的程序将变得很脆弱。为了保证应用程序的安全,请不要将变量用作列名 或者你必须用白名单过滤变量。如果你实在需要从用户获取列名,请阅读 过滤数据 章节。例如,以下代码易受攻击:
https://www.yiichina.com/doc/guide/2.0/db-query-builder#hash-format
共 1 条回复wenlife207 回复于 2019-11-29 15:39 回复非常感谢大神
其他 0 个回答
没有找到数据。
wenlife207
注册时间:2014-12-18
最后登录:2022-11-29
在线时长:22小时11分
最后登录:2022-11-29
在线时长:22小时11分
- 粉丝2
- 金钱110
- 威望0
- 积分330