【发布时间】:2010-10-31 02:07:23
【问题描述】:
我从食谱中阅读(第 4.2 节)
如果您使用 CakePHP 的 ORM 方法(例如 find() 和 save())和正确的数组表示法(例如,array('field' => $value))而不是原始 SQL,CakePHP 已经可以保护您免受 SQL 注入。对于 XSS 的清理,通常最好将原始 HTML 保存在数据库中而不进行修改,并在输出/显示时清理。
所以我们确定我们永远不需要针对 SQL 手动清理用户数据,只要我们限制为 find() 和 save() 等方法吗?特别是,如果我直接从 $_POST 而不是从 $this->data 获取数据,这是真的吗?换句话说,假设我使用 $this->data 进行 find() 查询。然后在编写数组 $this->data 或编写 find() 查询时,CakePHP 会针对 SQL 进行清理?
我的第二个问题是清理要显示的数据。 Sanitize::html 是幂等的吗?那么,我可以在我的 beforeSave() 方法中使用它,还是在我第二次保存时它会中断,因为它会再次应用并给出新的结果?
【问题讨论】:
标签: cakephp sanitization