网页内嵌第三方iframe的注意事项

参考资料:

Cookie 的 SameSite 属性 - 阮一峰的网络日志 (ruanyifeng.com)

记录一下项目组在测试嵌入自主开发的iframe插件时遇到的一个问题。

首先需要交代一下背景:在Chrome51之后,为了防止CSRF攻击和用户追踪,浏览器的cookie新增加了一个属性,叫SameSite,有三个取值选择:Strict/Lax/None,其中,Chrome的SameSite属性默认为Lax,Safari默认为Strict,Edge不确定默认是啥(但是肯定不会是None),因此在嵌入之初,因为iframe的域名和父页面网站域名不一样,在打开iframe的时候会报500 Internal Server Error(如果域名一致不会报错,因此这是一个隐藏的问题),导致原本在本地可以正常使用的插件失效(其实是cookie传输失败)。

解决方式

在配置应用时,添加一句

application.config.update(SESSION_COOKIE_SAMESITE="None", SESSION_COOKIE_SECURE=True)

None允许第三方发送cookie,同时需要设置SECURE=True(cookie只能通过https协议发送)

这样就可以正常在域名不一致的网站使用开发的插件(虽然这个方式也不是特别推荐,但是因为有secure保证,所以在安全性上会提高不少)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只野生的桔子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值