【问题标题】:Laravel 5 and Internet Explorer : Token MismatchLaravel 5 和 Internet Explorer:令牌不匹配
【发布时间】:2015-09-03 15:38:18
【问题描述】:

我的 Laravel5 网站使用 csrf 令牌来防止 CSRF 攻击。在 Chrome 和 Firefox 上,一切正常。

我提交了站点供我的客户测试,当他使用 Internet Explorer (9/10) 时,他在使用令牌的每个页面上都出现“令牌不匹配”错误。

我认为这是一个 cookie/会话问题。

经过一番研究,我尝试删除 cookie 名称中的斜杠(“laravel_session”),并更改会话驱动程序(默认为“file”)。它没有帮助。

我知道我的客户可以更改其在 IE 中的“信任策略”,但它是一个公共站点,这只是一个临时解决方案。

对这个奇怪的问题有什么想法吗?

【问题讨论】:

  • 我在一个组织工作,一些用户在 8-11 使用 IE 浏览,我也遇到了同样奇怪的问题。我使用 Laravel 5 启动了一个 HR 应用程序,它一启动我就检查了日志,发现到处都是“令牌不匹配”错误! @user534498 的回答是一个好的开始,我没有考虑过,但希望对此问题有更多解释,因为我什至不知道从哪里开始寻找其根本原因。

标签: php internet-explorer laravel-5 csrf csrf-protection


【解决方案1】:

我不确定你的情况。但我今天刚遇到同样的问题。只有 IE 有问题。 FF 和 chrome 工作正常。

然后我意识到服务器上的时间/日期是错误的。将服务器设置为当前日期,然后一切正常。

我猜是因为服务器会根据自己的时间设置cookie过期,而在客户端,如果服务器滞后,IE会立即删除cookie。只是我的猜测。

希望它也能解决您的问题。祝你好运。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,为我解决的问题是将我的 .htaccess 过期设置编辑为:

    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault A0
        ExpiresByType text/html A0
        # Set up caching on media files for 1 year
        <FilesMatch "\.(jpg|png|gif|js|css|ico|woff|woff2|eot|svg|ttf)$">
            ExpiresDefault A31536000
        </FilesMatch>
    </IfModule>
    

    之前,我的 ExpiresDefault 是 A31536000,我没有 ExpiresByType text/html。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,这是由于 P3P 错误。在 Edge (Windows 10) 上遇到问题。

      我做了很多研究,终于把它修好了。

      您所要做的就是创建一个新的中间件并将句柄函数更新到,

      public function handle($request, Closure $next)
      {
          $response = $next($request);
          $response->header('P3P', 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
          return $response;
      }
      

      详细解释在

      https://robinz.in/csrf-token-session-error-with-laravel-on-ie-edge/

      【讨论】:

      • 出于某种原因对我来说都不是
      【解决方案4】:

      在我的情况下,问题是服务器时间。 我在某处读到,如果服务器时间早于客户端,IE 会清除 cookie。 然后我注意到这里的服务器时间晚了8个小时。 修复此问题后,令牌不匹配错误消失。

      【讨论】:

      • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
      猜你喜欢
      • 2016-09-20
      • 2016-10-15
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 2016-06-25
      • 2022-09-27
      相关资源
      最近更新 更多