我在业余时间一直在开发一个 webapp。
它主要面向公开发布/消费内容,因此内容有望通过 http 公开查看。它还允许/包含 3rd 方小部件,因此需要 http 访问(许多供应商没有 https 版本,然后在 https 页面上存在 http 的混合内容问题)。由于这个和其他一些业务目标,99% 的网站必须在 http 上可用。
到目前为止,我实施的锁定方案是这样的:
- 一切都在同一个域上
- /account 和 /api 下的所有内容都通过 https 和仅限 https 的 cookie 处理。只有这些安全会话 ID 可用于写入或访问个人身份资料。
- 其他一切都通过 http 和一组单独的 http cookie 处理。这些 cookie 主要用于基于浏览器的 javascript 自定义,而不是用于“写入”或查看敏感内容)
这导致我的问题...
如果有人想在 webapp 上执行书签或社交活动,则需要通过 HTTPS 通道进行 - 使用 HTTPS cookie 等 - 但是浏览器的同源策略将 http 和 https 视为两个不同的服务器。
我正在尝试考虑有效(最好是简单)的方法来允许从 HTTP 内容对 HTTPS 服务器进行 API 调用。我的第一个想法是使用 JSONP,但我需要会话 cookie——而这对我来说是不可见的。
有人有什么建议吗?