Nginx配置解决Chrome浏览器SameSite跨域问题

Nginx配置解决Chrome浏览器SameSite跨域问题

最近联调接口,反复遇到chrome跨域问题,本来解决也很顺畅,结果突然有一个客户非要使用chrome 63的版本。。。。。。我折腾半天也没太好的办法,只能通过nginx去识别chrome浏览器版本决定返回cookie值来解决。

参考链接:

参考链接: Chrome修改了cookie安全策略.
参考链接: 通过Nginx设置HttpOnly Secure SameSite参数解决Cookie跨域丢失.
参考链接: 关于IE下面iframe跨域 cookie丢失的问题.
参考链接: nginx 跨域配置.
参考链接: Module ngx_http_map_module.
参考链接: nginx 常见正则匹配符号表示.

一、环境

浏览器Firefox、Chrome 63、Chrome 92

二、Nginx配置

  1. 定义map
    在nginx.conf配置文件中http下增加map定义,从$http_user_agent中识别是否存在Chrome 80、Chrome 90、Chrome 100、Chrome 110版本(100、110为以后Chrome版本准备的)。
    在这里插入图片描述
    map $http_user_agent $samesite_attr {
        "~*((chrome/8)|(chrome/9)|(chrome/10)|(chrome/11))" '/; httponly; secure; SameSite=None';
        default '/';
    }
  1. Nginx配置Chrome浏览器SameSite
    在location中增加定义proxy_cookie_path 引用$samesite_attr
    在这里插入图片描述
    proxy_cookie_path /   "$samesite_attr";
  1. 配置IE浏览器跨域
    在location中增加定义P3P
    在这里插入图片描述
	#add_header P3P 'policyref="/w3c/p3p.xml", CP="NOI DSP PSAa OUR BUS IND ONL UNI COM NAV INT LOC"';          
    add_header P3P 'CAO PSA OUR';
  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值