安全关注跨域/多域身份验证

时间:2013-03-19 16:34:31

标签: javascript authentication cross-domain browser-security

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

API&身份验证+帐户管理

  • https://example.com

只读+小工具操作

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

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

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

我正试图绕过“登录状态”并持久保存用户数据以自定义javascript。

看看像StackOverflow这样的网站是如何建模的,我首先想到的是:

  • 缓存登录状态+自定义数据(用户名,照片等)+ https://example.com上localStorage中的cookie数据,持续10分钟,或直到注销。 10分钟后,缓存将命中服务器的API进行更新。
  • 首先点击一个网站,查询远程localStorage。如果他们已登录,则代理返回登录状态,自定义数据和http(而非https)cookie ID。然后将此数据视为“新鲜”10分钟,或直到注销。
  • 将来自http://example.com的cookie克隆到请求域,替换该会话。这允许我跨域使用单个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请求。 / p>

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

0 个答案:

没有答案