chrome新版本禁用第三方cookie的SameSite问题

2021-05-14  本文已影响0人  driver_ab

1、 就是在chrome://flags/里设置禁用SameSite,(重启浏览器);

2、 后端进行设置 SameSite=none并且设置secure;(就是用https)(看后端框架能否支持此设置);

3、使用Nginx配置SameSite;

Nginx的proxy_cookie_path功能,具体配置方法(在location节点下加入,配置后重载Nginx):

如果站点Cookie所在目录在根目录/下,设置如下:

proxy_cookie_path / “/; secure; SameSite=None”;

如果站点Cookie所在目录在abc目录下,设置如下:

proxy_cookie_path /abc/ “/abc/; secure; SameSite=None”;

如果无法确定站点Cookie目录,可使用Chrome开发者工具,监测Network下网络请求,找到Response Headers中set-cookie属性值,该值中有path属性值即为Cookie目录,也即上文要替换的/或者/abc/值。

配置示例:

server {

    listen 443 ssl http2;

    server_name www.demo.com;

    # add_header X-XSS-Protection "1; mode=block";

    # add_header X-Frame-Options SAMEORIGIN;

    add_header Strict-Transport-Security "max-age=15768000";

    location / {

        root /var/www/html;

    }

    location /api {

        proxy_pass http://localhost;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # 配置位置如下

        proxy_cookie_path / "/; httponly; secure; SameSite=None";

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

2和3这两种方式在以后新版浏览器中可能会失效,因为浏览器可能将全面禁止三方cookie,到时候怎么设置都不起作用了。。。

扩展阅读:

前端的withCredentials属性:

XMLHttpRequest.withCredentials 属性是一个Boolean类型,它指示了是否该使用类似cookies,authorization headers(头部授权)或者TLS客户端证书这一类资格证书来创建一个跨站点访问控制(cross-site Access-Control)请求。在同一个站点下使用withCredentials属性是无效的。

————————————————

版权声明:本文为CSDN博主「梅花屋主」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_46653284/article/details/109615544

上一篇下一篇

猜你喜欢

热点阅读