保存修改后的数据时,CakePHP会自动处理质量分配漏洞吗?

xtr*_*nge 8 security cakephp mass-assignment cakephp-2.0

编辑:

从DCoder收到更多信息后,我在这里搜索的短语是一个"质量分配漏洞".也就是说,利用将所有有效字段保存到数据库的方法的便利性,无论它们是否存在于初始表单上(使它们容易受到包含比预期更多[可能更关键]字段的操作POST数据的影响).

然后将这两个常见的响应恰当地命名为白名单和黑名单; 用于修改的白名单字段,或将不应修改的字段列入黑名单.

我的问题如下:CakePHP是否会自动将提交表单中的字段列入白名单,或者我(以及其他Cake粉丝)是否需要小心我们是否正确列入白名单或列入黑名单?


原始问题:

Cake提供了很多很好的方法来生成表单并几乎自动处理它们.当我考虑安全性时,我想知道:Cake是否知道提交的表单中存在哪些字段,或者它是否只接受任何有效字段?看看下面的塞纳里奥如果我没了感觉(有人欢迎编辑我的问题得到更好的措辞,如果他们能想出更好的方式来表达的话):

假设我允许我的用户编辑他们的个人资料.我创建了一个表单,其中包含用户名,电子邮件和密码的字段edit.

一个聪明的用户想进来,他们改变is_admin字段从falsetrue,所以他们使用的应用程序像萤火虫自定义后的数据提交给edit行动,其中包括场is_admin设置为true.

现在的问题是,将蛋糕放在它自己是意识到is_admin是不是在原来的形式,还是需要小心明确指定哪些字段规定动作可以修改唯一字段?有没有更简单的方法?

谢谢!

詹姆士

dho*_*tet 4

您必须SecurityComponent在控制器中加载,CakePHP 将防止您的表单篡改,请参阅http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html#form-tampering -预防