编辑:
从 DCoder 收到更多信息后,我在这里搜索的短语是“批量分配漏洞”。也就是说,利用将所有有效字段保存到数据库中的方法的便利性,而不管它们是否存在于初始表单上(使它们容易受到包含比预期字段更多[可能更关键]字段的操纵 POST 数据的攻击)。
然后将这两种常见的响应适当地命名为白名单和黑名单;将用于修改的字段列入白名单,或将不应修改的字段列入黑名单。
然后我的问题是:CakePHP 是否只自动将提交表单中的那些字段列入白名单,或者我(和其他 Cake 粉丝)是否有必要小心我们适当地列入白名单或列入黑名单?
原始问题:
Cake 提供了许多很棒的方法来生成表单并几乎自动处理它们。当我考虑安全性时,我想知道:Cake 是否知道提交的表单中存在哪些字段,或者它是否会简单地接受任何有效字段?如果我没有意义,请采取以下 senario(如果他们能想到更好的表达方式,欢迎有人编辑我的问题以更好地措辞):
假设我允许我的用户编辑他们的个人资料。我在 action 下创建了一个包含用户名、电子邮件和密码字段的表单edit
。
一位聪明的用户想要进来并将他们的is_admin
字段从更改false
为true
,因此他们使用像 firebug 这样的应用程序将自定义帖子数据提交给edit
操作,其中包括is_admin
设置为的字段true
。
问题是,Cake 会自己意识到这is_admin
不是原始形式,还是我需要小心明确指定给定操作可以修改的唯一字段?有没有更简单的方法?
谢谢!
詹姆士