xtr*_*nge 8 security cakephp mass-assignment cakephp-2.0
编辑:
从DCoder收到更多信息后,我在这里搜索的短语是一个"质量分配漏洞".也就是说,利用将所有有效字段保存到数据库的方法的便利性,无论它们是否存在于初始表单上(使它们容易受到包含比预期更多[可能更关键]字段的操作POST数据的影响).
然后将这两个常见的响应恰当地命名为白名单和黑名单; 用于修改的白名单字段,或将不应修改的字段列入黑名单.
我的问题如下:CakePHP是否会自动将提交表单中的字段列入白名单,或者我(以及其他Cake粉丝)是否需要小心我们是否正确列入白名单或列入黑名单?
Cake提供了很多很好的方法来生成表单并几乎自动处理它们.当我考虑安全性时,我想知道:Cake是否知道提交的表单中存在哪些字段,或者它是否只接受任何有效字段?看看下面的塞纳里奥如果我没了感觉(有人欢迎编辑我的问题得到更好的措辞,如果他们能想出更好的方式来表达的话):
假设我允许我的用户编辑他们的个人资料.我创建了一个表单,其中包含用户名,电子邮件和密码的字段edit
.
一个聪明的用户想进来,他们改变is_admin
字段从false
到true
,所以他们使用的应用程序像萤火虫自定义后的数据提交给edit
行动,其中包括场is_admin
设置为true
.
现在的问题是,将蛋糕放在它自己是意识到is_admin
是不是在原来的形式,还是需要小心明确指定哪些字段规定动作可以修改唯一字段?有没有更简单的方法?
谢谢!
詹姆士
您必须SecurityComponent
在控制器中加载,CakePHP 将防止您的表单篡改,请参阅http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html#form-tampering -预防