登录表单工作正常,但我提交的任何其他表单(如编辑或创建数据)都会检测到CSRF攻击错误。我试图清除symfony和浏览器缓存,删除cookie,尝试多个浏览器和多台计算机。
这会导致什么?当我关闭CSRF保护时,它可以正常工作。
答案 0 :(得分:4)
每次我收到此错误都是因为我忘记在表单中呈现隐藏的标签。别忘了添加这一行:
<?php echo $form->renderHiddenFields() ?>
答案 1 :(得分:2)
很难用所提供的信息回答这个问题。这有两种可能性:
答案 2 :(得分:0)
确保模板中的表单包含CSRF标记,并使用以下格式提交:
<?php echo $form['_csrf_token']->render(); ?>
我会走出困境并猜测登录表单是否有效,因为您只是使用现成的SfGuard代码,而在您自己的表单上,您已从表单中省略了标记....? / p>
答案 3 :(得分:0)
要检查这一点,您应该在执行POST时尝试运行Fiddler并检查%5B_csrf_token%5D = {whateveryourtokenis}的有效负载。