当前位置: 首页 > Web前端 > JavaScript

新版chrome中iframe嵌套禁止跨域携带cookie解决方法

时间:2023-03-27 15:10:23 JavaScript

谷歌2020年2月4日发布的Chrome80版本默认屏蔽所有第三方cookie,即所有cookie都添加SameSite=Lax属性默认情况下,拒绝非安全cookie并设置SameSite=Non;SameSite的作用是防止cookie的跨域传输,从而防止CSRF攻击和用户跟踪,从源头上屏蔽CSRF漏洞。Secure属性仅在整个站点使用https协议时使用:安全cookie将在发出请求时发送到服务器。cookie的SameSite属性用于限制第三方cookie,从而降低安全风险。它可以设置三个值:Strict,Lax,NoneStrict是最严格的,完全禁止第三方cookies,跨站时任何情况下都不会发送cookies。也就是说,只有当前网页的URL与请求目标一致时,才会带上cookie。宽松的规则稍微宽松,大多数情况下不会发送第三方cookie,除了导航到目标URL的Get请求。导航到目标URL的GET请求仅包括三种情况:链接、预加载请求和GET表单。详情见下表。请求类型示例NormalLaxLinksSendCookiesSendCookiesPreloadSendCookiesSendCookiesGETFormSendCookies发送CookiePOST表单发送Cookie不要发送Cookieiframe发送Cookie不要发送AJAX$。get("...")发送Cookie但不发送Image发送Cookie但不发送内嵌iframe携带cookie解决方法1、选择显式关闭SameSite属性,设置为None。但前提是必须同时设置Secure属性(Cookie只能通过HTTPS协议发送),否则无效。2.浏览器设置谷歌浏览器访问chrome://flags/searchEnableremovingSameSite=Nonecookies,设置参数为disabled