当前位置:  开发笔记 > 编程语言 > 正文

什么时候在CakePHP中进行消毒

如何解决《什么时候在CakePHP中进行消毒》经验,为你挑选了1个好方法。

我从食谱中读到(第4.2节)

如果您使用CakePHP的ORM方法(例如find()和save())和正确的数组表示法(即数组('field'=> $ value))而不是原始SQL,CakePHP已经保护您免受SQL注入.对于针对XSS的清理,通常更好的是将原始HTML保存在数据库中而不进行修改并在输出/显示时进行清理.

因此,我们确定我们不需要针对SQL手动清理用户数据,前提是我们限制使用find()和save()等方法吗?特别是,如果我直接从$ _POST获取数据而不是从$ this-> data获取数据,这是真的吗?换句话说,假设我使用$ this-> data进行find()查询.然后CakePHP在编写数组$ this-> data或编写find()查询时对SQL进行清理?

我的第二个问题是清理要显示的数据.是Sanitize :: html幂等吗?那么,我可以在我的beforeSave()方法中使用它,还是会在第二次保存时中断,因为它再次应用并提供新的结果?



1> Mauro Zaduna..:

关于这个问题:

编写数组$ this-> data或编写find()查询时,CakePHP是否对SQL进行清理?

Cakephp不会清理控制器中的$ this->数据,如果你检查蛋糕代码,在Dispatcher :: parseParams()http://api13.cakephp.org/view_source/dispatcher/#line-244你会看到将$ _POST复制到控制器数据,不对值进行清理.

但是,建议不要使用$ _POST,因为在使用表单助手时,您将失去所有蛋糕的魔力

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有