iOS Safari中的永久本地存储问题

时间:2018-10-10 00:11:09

标签: javascript ios iframe safari local-storage

我目前正在开发一个Web应用程序,该应用程序出于安全性目的(保护用户数据)位于iframe中,并托管在其他网站上。为了保持不安全数据的会话状态,我们将一些数据写入本地存储以实现用户功能,即记住用户的背景色,将“ backgroundColour”保存为“红色”。

但是,我在iOS Safari上遇到了以下两个问题,目前在MacOS Safari和Chrome和Internet Explorer 11上都可以使用。

问题1 :当我强制退出iOS时未保留本地存储

  1. 用户导航到主机网站www.host.com,该网站从另一个域www.example.com加载我的iframe内容
  2. 然后,用户与iframe进行交互,并将他们保存的背景颜色偏好设置保存到本地存储中。
  3. 然后,用户强制退出Safari或导航离开,然后强制退出Safari。
  4. 导航回主机网站

预期的行为:localStorage包含backgroundColour属性

实际行为:本地存储为空

问题2 :在其他网站上使用iframe内容不会利用本地存储空间

  1. 用户导航到主机网站www.host.com,该网站从另一个域www.example.com加载我的iframe内容
  2. 然后,用户与iframe进行交互,并将他们保存的背景颜色偏好设置保存到本地存储中。
  3. 用户在步骤www.example.com
  4. 中导航到www.awesomesite.com,其中也包含来自域的iframe内容。

预期的行为:由于该存储针对iframe的DNS,因此在不同站点之间保留了本地存储

实际行为:本地存储为空

有人曾经历过吗?人们发现了任何变通办法吗?这是iOS Safari中的错误吗?我做错什么了吗?

欢呼

1 个答案:

答案 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

https://medium.com/@bluepnume/safaris-new-tracking-rules-and-enabling-cross-domain-data-storage-85241eea7483

AND

https://groups.google.com/forum/#!topic/mozilla.dev.platform/vm81cSx4teo