我可以在CakePHP 1.3中使用动态创建的表单字段和安全组件吗?

ano*_*ard 5 php security cakephp cakephp-1.3

使用CakePHP 1.3,我有一个(工作)表单,动态创建表单字段(通过Javascript).一切都很好,通过saveAll()保存了多个模型,它很漂亮.

但是,每当我启用安全组件(希望获得一些自动魔术CSRF保护)时,我就会陷入404黑洞.

据我所知,这可能是(可能是!)由动态创建的表单字段引起的,如文档中所述.

有没有办法让他们一起玩得很好?

dec*_*eze 5

你也不能吃蛋糕,也不能吃.(茶清!)

CSRF保护意味着只允许提交某个表单字段列表.此列表在表单创建时决定并修复.您不能受CSRF保护动态更改表单中的字段.

有两种解决方案:
如果动态创建的字段的数量和名称有限,请在表单中创建它们并使用CSS隐藏它们,然后使用Javascript显示它们.这样您就不会动态创建字段,而只是动态显示它们.
如果这不起作用,您可以使用该$disabledFields选项将字段列入白名单(同样,只有在事先知道其名称的情况下)或使用该$validatePost选项完全禁用CSRF .