用户工具

站点工具


侧边栏

1.bi与可视化saca.dataviz:10集成:10.1chrome浏览器iframe内登陆异常

10.1 Chrome浏览器iframe内登陆异常

Chrome 80以上版本,对未设置SameSite的cookie视作SameSite:Lax

影响范围:

1.跨域的 ajax 请求
2.跨域嵌入的 iframe
3.跨域的图片资源请求
4.跨域的 POST FORM 表单

如果存在这类跨域场景,且在服务端接收请求的时候,需要使用请求中的 cookie,则需要注意这个cookie在设置的时候,是否明确有SameSite:None; Secure 这两个属性。如果没有的话,就会受到此策略影响。

而Secure意味着服务需要开启https。

解决方法

1. 浏览器改配置

浏览器SameSite改为Disabled,然后重启浏览器。

注意:只是在当前浏览器生效,没有解决根本问题。

2. 开启https并设置SameSite:None; Secure

a. 开启https。
b. 添加SameSite:None; Secure如果是tomcat7/8/9版本。
在tomcat/conf/context.xml的内添加CookieProcessor,对应SameSite:None;

<Context>
   ...
   <CookieProcessor sameSiteCookies="None" />
   ...
</Context>

在tomcat/conf/web.xml或服务内web.xml的中添加,对应Secure

<session-config>
    ...
    <cookie-config>
        <secure>true</secure>
    </cookie-config>
    ...
</session-config>

3. 使用nginx或apache等服务做地址映射,统一入口。

/var/www/html/wiki/data/pages/1.bi与可视化saca.dataviz/10集成/10.1chrome浏览器iframe内登陆异常.txt · 最后更改: 2020/09/25 11:14 由 admin