4

我们有一个多域平台,它使用中央域进行身份验证和 api 操作。

API & 认证 + 账户管理

  • https://example.com

只读 + 小部件操作

  • http://example.com
  • http://example.net
  • http://example.org

我已经阅读了大多数(如果不是全部)有关此类设置的 StackOverflow 问题,但无法深入了解此问题。(关于此的大多数问答都涉及一般原则,很少涉及细节)。

我们正在使用(一个 javascript iframe 代理库)在和其他域名Porthole.js之间推送 API 调用。https://example.com一切都很完美。

我正试图围绕“登录状态”和持久化用户数据来自定义 javascript。

看看像 StackOverflow 这样的网站是如何建模的,我的第一个想法是:

  • 在 localStorage 中缓存登录状态 + 自定义数据(用户名、照片等)+ cookie 数据https://example.com10 分钟,或直到注销。10分钟后,缓存会命中服务器的API进行更新。
  • 在第一次访问网络站点时,查询远程 localStorage。如果他们已登录,则代理返回登录状态、自定义数据和 http(不是 https)cookie id。然后此数据在 10 分钟内被视为“新鲜”,或直到注销。
  • 来自的 cookiehttp://example.com被克隆到请求域,替换该会话。这允许我跨域使用单个 cookie / id。

我最担心的是最后一步——克隆 http cookie——尽管它只用于跟踪和“预览”访问。但是整个系统依赖于浏览器安全模型,我可能会遗漏一些东西。这似乎是一种优雅且“安全”的机制,就好像我使用了 AuthTicket 模型(用户访问https://example.com/auth-request?destination=http://example.net/auth-response,被重定向到http://example.net/auth-response?nonce=VERYBIGNUMBER)或在 iframe 中发出透明的 oAuth 请求。

任何人都可以阐明我错过的明显/明显的安全问题,或者这看起来和替代方案一样安全吗?

4

0 回答 0