symfony2 CSRF 无效

标签 symfony csrf

好的,所以今天我用我们的“实时”数据库中的新信息更新了我的数据库……从那时起,我的一个表格就出现了问题。如果您需要任何代码,请告诉我,我将对其进行编辑并发布所需的代码...

我有一个报告表格,其中有一个日期范围字段和一个代理部门的下拉列表。当我第一次访问该页面时,我在表单的开头看到了这个:
The CSRF token is invalid. Please try to resubmit the form
因此,我转到具有相同类型信息的其他表单之一,并检查 _token ,结果如下:

<input type="hidden" id="ecs_crmbundle_TimeClockReportType__token" name="ecs_crmbundle_TimeClockReportType[_token]" value="87e358fbc4d6d3e83601216b907a02170f7bcd92" />
<input type="hidden" id="ecs_crmbundle_SimpleSalesReportType__token" name="ecs_crmbundle_SimpleSalesReportType[_token]" value="87e358fbc4d6d3e83601216b907a02170f7bcd92" />

第一个是显示错误的那个,而 SimpleSalesReport 没有...知道为什么要这样做或如何解决它吗?

谢谢..

最佳答案

您是否偶然在产生 CSRF 错误的操作中使用 $form->bindRequest() ?我有这个问题。您不应该绑定(bind)新表单的请求。如果您将表单发布到相同的操作,请将 bindRequest 包装在一个条件中,该条件检查方法是否为 POST:

if ($this->getRequest()->getMethod() == 'POST') {
  $form->bindRequest($this->getRequest());
  if ($form->isValid()) {
    ...
  }
}

关于symfony2 CSRF 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10442922/

相关文章:

php - Doctrine2 - 列在刷新之前更改为空

python - 持久性 "CSRF token missing or incorrect."。 Jinja 和 django 注册设置

python - CSRF token 丢失或不正确(我知道,之前已被问过!)

Symfony2 - 从 formBuilder 内部修改自定义字段类型中的选择

authentication - CAS 认证 Symfony2

csrf - Laravel 5 : POST without CSRF checking

angular - 在 ASP.NET Core AntiforgeryTokenSet 中,RequestToken 和 CookieToken 的用法有什么区别?

java - 使用 Spring Security 和 AngularJS 预防 CSRF

php - 如何在 Twig 中隐藏本地化货币过滤器的小数部分

symfony - 使用 FosUserBundle 创建管理员用户