我目前正在开发一个Web应用程序,该应用程序出于安全性目的(保护用户数据)位于iframe中,并托管在其他网站上。为了保持不安全数据的会话状态,我们将一些数据写入本地存储以实现用户功能,即记住用户的背景色,将“ backgroundColour”保存为“红色”。
但是,我在iOS Safari上遇到了以下两个问题,目前在MacOS Safari和Chrome和Internet Explorer 11上都可以使用。
问题1 :当我强制退出iOS时未保留本地存储
www.host.com
,该网站从另一个域www.example.com
加载我的iframe内容预期的行为:localStorage包含backgroundColour属性
实际行为:本地存储为空
问题2 :在其他网站上使用iframe内容不会利用本地存储空间
www.host.com
,该网站从另一个域www.example.com
加载我的iframe内容www.example.com
预期的行为:由于该存储针对iframe的DNS,因此在不同站点之间保留了本地存储
实际行为:本地存储为空
有人曾经历过吗?人们发现了任何变通办法吗?这是iOS Safari中的错误吗?我做错什么了吗?
欢呼
答案 0 :(得分:2)
问题1 是Safari行为,无法在外部使用代码进行更改。请通过Apple打开功能请求或错误报告:
https://www.apple.com/feedback/safari.html
问题2 :不幸的是,您使用的“第三方本地存储”技术是跟踪技术所采用的技术。最近的隐私政策推动了所有浏览器对第三方Cookie和其他本地存储制定更严格的规则。您会发现隐私设置会使您的用户体验不一致。当您成为第三方时,您不能指望本地存储可靠。
查看: Is there any workaround to set third party cookie in Iframe for safari?
AND
AND
https://groups.google.com/forum/#!topic/mozilla.dev.platform/vm81cSx4teo