gpt4 book ai didi

database - Yii CActiveForm 会自动清理用户输入吗?

转载 作者:太空狗 更新时间:2023-10-30 01:59:48 24 4
gpt4 key购买 nike

我有一个基本的 Yii CActiveForm,我用它来收集用户的输入,然后通过默认的 Yii ActiveRecord 模型[/编辑]将其插入数据库[编辑]。与任何人一样,我想确保聪明的用户不会通过这些字段之一删除我的数据库。

问题是:Yii CActiveForm 会在它可以做任何恶意之前自动清理输入吗?我找不到关于此的任何文档。不确定我是否需要花时间在这上面,或者它已经处理好了。

谢谢!

最佳答案

当您说“CActiveForm”时,我假设您的意思是使用 Yii 生成的模型和 Controller 。 CActiveForm 不会自动为你做任何清理,但如果你使用 Yii 默认使用的 ActiveRecord 方法,它通常会根据每个字段的数据类型为你做 PDO 绑定(bind)。如果您使用 createCommand() 或其他方法创建自己的查询,您应该 define your own bindings .

如果你想看看发生了什么,你可以turn on logging ,例如,要使用 db 命令生成文件,请将其添加到 components->log 数组中的配置文件中:

'components'=>array(
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'trace, info',
'categories'=>'system.db.*',
'logFile'=>'db.log',
),
...

如果您看到参数化的更新语句,您可以非常确定它们使用的是 PDO bindings ,这将防止大多数(但不一定是全部)SQL 攻击。 (默认情况下,日志文件保存在您的“运行时”目录中,然后您可以对其进行追踪。您也可以使用 CWebLogRoute 将其显示在网页或 FireBug 的底部,但这不会显示所有命令如果页面被重定向。)

关于database - Yii CActiveForm 会自动清理用户输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7677841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com