Laravel 5.6 CSRF令牌未验证/检查

时间:2018-07-19 16:14:56

标签: laravel-5 csrf laravel-5.6 csrf-protection

我有:

刀片

UITabBarController

由控制器接收:

<form class="form-horizontal was-validated" method="POST" action="{{ route('account.applications.index')}}">
  {{ csrf_field() }}
  {{-- yadda yadda yadda --}}
  <div class="form-group row">
    <label class="col-sm-2 col-form-label">&nbsp;</label>
    <div class="col-sm-10">
      <input id="application_type" type="hidden" name="application_type" value="{{ Request::get('application') }}">
      <button type="submit" class="btn btn-primary">Submit</button>
    </div>
  </div>
</form>

上面的代码工作正常,除了... CSRF功能,我检查了是否可以从请求中检索CSRF值。

但是,一旦我的交易完成并重定向到我想要的页面,如果我按F5键,它将重新提交表单,这将导致CSRF不匹配,但是在我的情况下,它没有。

是否有打开CSRF验证的特定方法?

1 个答案:

答案 0 :(得分:1)

迟到了聚会,但我相信您的CSRF检查工作正常。

据我了解,Laravel中使用的VerifyCsrfToken中间件只是指示是否应在响应上设置XSRF-TOKEN,而{{ csrf_field() }}是获取{{1 }}。由于您要按F5重新提交表单,因此我相信$session->token()现在指向您的新会话令牌cookie,并通过了检查。

您不是通过AJAX / Axios提交表单,因此Laravel应该处理整个请求,其中一部分包括从当前会话验证CSRF令牌,而不是从验证您的CSRF令牌的保存/序列化版本上一届会议。