gpt4 book ai didi

javascript - iOS Safari 中的持久本地存储问题

转载 作者:可可西里 更新时间:2023-11-01 03:33:22 27 4
gpt4 key购买 nike

我目前正在开发一个网络应用程序,该应用程序出于安全目的(保护用户数据)而位于 iframe 内,并托管在其他网站上。为了保持不安全数据的 session 状态,我们将一些数据写入本地存储以实现用户功能,即记住用户的背景颜色,我们将“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.awesomesite.com,其中还有我在第 1 步中来自域的 iframe 内容,www.example.com

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

实际行为:本地存储为空

有没有人遇到过这种情况?人们是否找到了任何解决方法?这是 iOS Safari 中的错误吗?我做错了什么吗?

干杯

最佳答案

问题 1 是 Safari 行为,无法通过代码从外部更改。请向 Apple 打开功能请求或错误报告:

https://www.apple.com/feedback/safari.html

问题 2:不幸的是,您使用的“第 3 方本地存储”技术是跟踪技术采用的一种技术。最近的隐私插入导致所有浏览器对第 3 方 cookie 和其他本地存储制定了更严格的规则。您会发现隐私设置会使您的用户体验不一致。当您是第 3 方时,您不能指望您的本地存储是可靠的。

查看: Is there any workaround to set third party cookie in Iframe for safari?

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

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

关于javascript - iOS Safari 中的持久本地存储问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52730903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com