Php Laravel 5.2:Chrome上修订的Iframe表单上的令牌不匹配异常?

Php Laravel 5.2:Chrome上修订的Iframe表单上的令牌不匹配异常?,php,laravel,google-chrome,cookies,csrf,Php,Laravel,Google Chrome,Cookies,Csrf,我在5.2版上使用了Laravel应用程序来创建动态表单,可以使用Iframe对任何网页进行校正。几个月前表单工作正常,但现在无法在Chrome(最新版本)上工作,原因如下: 此集合Cookie未指定“SameSite”属性,默认为SameSite=lax,并被阻止,因为它来自corss站点响应,而不是对顶级导航的响应。Set Cookie必须设置为“SameSite=None”才能启用跨站点请求 以下是具有所有属性的Iframe: <iframe src="https://lo

我在5.2版上使用了Laravel应用程序来创建动态表单,可以使用Iframe对任何网页进行校正。几个月前表单工作正常,但现在无法在Chrome(最新版本)上工作,原因如下:

此集合Cookie未指定“SameSite”属性,默认为SameSite=lax,并被阻止,因为它来自corss站点响应,而不是对顶级导航的响应。Set Cookie必须设置为“SameSite=None”才能启用跨站点请求

以下是具有所有属性的Iframe:

<iframe src="https://local.testproject.com/iframe/MSvnBNB9FT4H4m7kNi1OSJtdomsAxW3XnR6KZn1W9dStupbBLjYSfn7txRUNIDCa0UWCR4RbeiWJaMgy6JSDbZXzsFf8C6u32pUD5TiHPqJzxQiLwXXYm8SsUqHqhhoV" sandbox="allow-forms allow-modals allow-popups allow-scripts allow-same-origin allow-top-navigation" style="width: 100%; height: 650px; border: none;"></iframe>
还添加了参数
config/session.php

/*
    |--------------------------------------------------------------------------
    | Same-Site Cookies
    |--------------------------------------------------------------------------
    |
    | This option determines how your cookies behave when cross-site requests
    | take place, and can be used to mitigate CSRF attacks. By default, we
    | do not enable this as other CSRF protection services are in place.
    |
    | Supported: "lax", "strict", "none"
    |
    */

    'same_site' => 'None'
之后,我修改了
vendor\laravel\framework\src\illumb\Foundation\Http\Middleware\VerifyCsrfToken.php
,并用以下方法添加了新参数
same\u site

protected function addCookieToResponse($request, $response)
    {
        $config = config('session');

        $response->headers->setCookie(
            new Cookie(
                'XSRF-TOKEN', $request->session()->token(), time() + 60 * $config['lifetime'],
                $config['path'], $config['domain'], $config['secure'], false, $config['same_site']
            )
        );

        return $response;
    }
还是不走运!我知道修改核心不是一个好的做法,但我只是想让它起作用。请指导我如何做到这一点


感谢在5.5版中将
相同的站点
属性添加到laravel中:

要使用它,您必须更新您的laravel应用程序或使用简单的技巧,包括在
config/session.php
中编辑
path
属性,以:

“路径”=>“/;samesite=无',

就这样

我也试过这个
'path'=>'/;samesite=none',
,但它不起作用。您的PHP版本是什么?PHP版本7.3因为PHP 7.3的“path”值被转义,所以您唯一的解决方案可能是升级您的laravel应用程序。
protected function addCookieToResponse($request, $response)
    {
        $config = config('session');

        $response->headers->setCookie(
            new Cookie(
                'XSRF-TOKEN', $request->session()->token(), time() + 60 * $config['lifetime'],
                $config['path'], $config['domain'], $config['secure'], false, $config['same_site']
            )
        );

        return $response;
    }