【发布时间】:2011-05-02 13:21:25
【问题描述】:
鉴于 FireSheep 获得的所有报道,我一直在尝试为我管理的一些网站(例如博客网站、具有用户贡献的 cmets 的杂志网站)制定平衡 HTTP / HTTPS 使用的最佳实践。
对我来说,如果用户已登录,通过 HTTPS 传送所有页面就太过分了。如果一个页面是公共的(例如博客),那么加密公共页面就没有什么意义了。我想做的就是通过在 HTTP 通道上嗅探 cookie 来防止会话劫持。
所以,一个计划是:
- 登录表单通过 HTTPS
- 发出两个 cookie:一个 cookie 是“公开的”,并在只读方面识别用户(例如“欢迎鲍勃!”)。第二个 cookie 是私有的并且“仅限 HTTPS”。这是每当用户进行更改(例如添加评论、删除帖子)时都会验证的 cookie。
这意味着所有“更改”请求都必须通过 HTTPS 发出。
我们使用了很多 AJAX。事实上,许多评论表单使用 AJAX 来发布内容。
显然,我不能直接使用 AJAX 将内容从 HTTP 前端发布到 HTTPS 后端。
我的问题是:我可以使用脚本注入(我认为这通常称为“JSONP”吗?)来访问 API?所以在这种情况下,会有一个 HTTP 公共页面通过注入通过 HTTPS 访问的脚本将数据发送到私有后端(以便私有 cookie 在请求中可见)。
您可以在 HTTP 页面中包含 HTTPS 内容吗?我知道您会收到相反的警告,但我认为 HTTP 中的 HTTPS 不是安全漏洞。
这行得通吗?它似乎可以在 chrome 和 FF 中运行,但它的 IE 将成为派对大便!
【问题讨论】: