代码之家  ›  专栏  ›  技术社区  ›  anonymous coward

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

  •  5
  • anonymous coward  · 技术社区  · 15 年前

    使用cakephp 1.3 ,我有一个(工作的)表单,它动态地创建了表单字段(通过javascript)。一切都很好,通过saveall()保存了多个模型,而且非常漂亮。

    但是,每当我启用安全组件(希望获得一些自动神奇的CSRF保护)时,我都会被设置为404。

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

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

    1 回复  |  直到 13 年前
        1
  •  5
  •   deceze    15 年前

    你不能再吃蛋糕了。(查青!)

    CSRF保护意味着只允许提交特定的表单字段列表。此列表在创建表单时确定并固定。你不能被CSRF保护 动态更改窗体中的字段。

    有两种解决方案:
    如果动态创建的字段的数量和名称受到限制,请在表单中创建所有字段并使用CSS隐藏它们,然后使用javascript显示它们。这样,您就不会动态地创建字段,而只会动态地显示它们。
    如果不起作用,您可以使用 $disabledFields option (同样,只有提前知道他们的名字)或完全禁用CSRF $validatePost 选项。