0

我刚开始使用 CakePHP 框架,准确地说是 2.0。我阅读了大部分文档和示例,并看到了博客教程。

http://book.cakephp.org/2.0/en/tutorials-and-examples/blog/part-two.html#editing-posts 在教程的“编辑帖子”部分,我看到他们使用隐藏字段记住帖子ID。由于客户端修改,这不是不好的做法吗?

我处理这个问题的方法是删除隐藏字段,并在提交表单时将 post id 添加到 POST 数据中,然后再保存和验证它。这是正确的方法吗?

4

3 回答 3

1

是的,如果您担心篡改数据,那几乎是正确的方法。如果记录属于某个用户,您需要确保该用户不能只用其他用户的记录替换 id。安全组件在这里也没有帮助(至少在某些方面)。

在这里阅读更多信息:http: //www.dereuromark.de/2010/09/21/saving-model-data-and-security/

于 2012-01-23T22:50:06.673 回答
1

SecurityComponent 将帮助隐藏字段。它将黑洞检测到的任何请求包含被篡改的隐藏输入,但它不会对下拉输入做任何事情。你可以破解一些在 firebug 中打开的 AddUser 表单并添加一个选项:

<option value="superadmin">SuperAdmin</option>

进入“角色”下拉菜单,在表单上选择它,提交后,CakePHP 将创建一个新的 SuperAdmin。所以最好的策略仍然是不信任客户。客户端是一群木狼,而您的服务器是一群兔子。把这两个分开。

于 2013-08-30T15:28:54.893 回答
0

您所要做的就是将 SecurityComponent 添加到您的 AppController::$components 变量中,以防止客户端更改隐藏字段。

于 2012-01-23T22:27:29.793 回答