如何防止 CakePHP 3.0 中的多个表单提交?
Posted
技术标签:
【中文标题】如何防止 CakePHP 3.0 中的多个表单提交?【英文标题】:How to prevent multiple form submission in CakePHP 3.0? 【发布时间】:2015-08-03 09:01:32 【问题描述】:我刚刚浏览了这个问题
How to prevent double / duplicate form submissions in Cakephp?
但似乎没有一个解决方案适用于 CakePHP 3.x。
例如,$this->Security->csrfUseOnce = true;
没有帮助,仍然接受重复数据。
这是否随着新版本的蛋糕而演变?在 cake 3.0 中我应该怎么做?
【问题讨论】:
PRG 模式有什么问题?您需要重复表单提交保护的具体场景是什么? @ndm,我只是想防止用户多次点击提交。当然,这可以使用 javascript 来完成。但是为了增加安全性,我想我也会在服务器上进行验证,因为 cake 的内置安全组件使用令牌和会话变量。 【参考方案1】:从 3.x CSRF 组件中删除了一次令牌,因为通常会话令牌不那么麻烦。如果您想拥有一次性令牌,您需要自己将其实现为应用程序/插件中的组件。如果您确实走这条路,请尝试使用支持原子获取/删除的数据存储,例如 redis 或 memcache。
【讨论】:
以上是关于如何防止 CakePHP 3.0 中的多个表单提交?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 cakephp 中通过 ajax 提交 jquery 移动弹出表单