gpt4 book ai didi

cakephp - 何时在 CakePHP 中进行清理

转载 作者:行者123 更新时间:2023-12-02 10:04:57 27 4
gpt4 key购买 nike

我读了食谱(第 4.2 节)

CakePHP already protects you against SQL Injection if you use CakePHP's ORM methods (such as find() and save()) and proper array notation (ie. array('field' => $value)) instead of raw SQL. For sanitization against XSS its generally better to save raw HTML in database without modification and sanitize at the time of output/display.

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

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

最佳答案

关于这个问题:

CakePHP sanitize against SQL when writing the array $this->data or when writing the query for find()?

如果您在 Dispatcher::parseParams() 中检查蛋糕代码,Cakephp 不会清理 Controller 中的 $this->data http://api13.cakephp.org/view_source/dispatcher/#line-244您将看到,当 $_POST 复制到 Controller 数据时,这些值没有被清理。

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

关于cakephp - 何时在 CakePHP 中进行清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2168089/

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