“CSRF 令牌无效。请尝试重新提交表单”在 Symfony3

我有一个 Symfony 3 应用程序,它是通过 Kubernetes 部署的。有一个页面,它有 2 个表单和 2 个数据表,带有服务器端处理。我正在使用 Redis 进行会话存储。提交任一表单时,我随机收到错误“CSRF 令牌无效。请尝试重新提交表单”。如果我只有 2 个(2 个表格,0 个表格,1 个表格,1 个表格;0 个表格,2 个表格)的任何组合,我不会收到错误消息。每次提交表单时都会发送令牌。

有人可以提供一些关于可能是什么原因的提示吗?我已经在 Stackoverflow 上尝试过类似问题的解决方案,但无济于事。

编辑:

我刚刚注意到,当发生 CSRF 错误时,我在 cookie 中看不到 sf_redirect。所有成功的调用都有这个 cookie。

更新:

我找到了解决方案。我更新了我的防火墙配置。

firewalls:
    main:
        stateless: true

在它之前 stateless: false


慕侠2389804
浏览 221回答 2
2回答

米琪卡哇伊

为了确保 CSRF 在您的表单上,您可以添加 with{{ form_rest(form) }}但如果您处于开发模式,也许是因为您不在 https 中?

慕雪6442864

确保csrf_token&nbsp;在您的 html 表单中&nbsp;包含一个新鲜的<input&nbsp;type="hidden"&nbsp;name="token"&nbsp;value="{{&nbsp;csrf_token('[insert&nbsp;intended&nbsp;action&nbsp;here]')&nbsp;}}"/>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript