【发布时间】:2015-07-14 11:15:08
【问题描述】:
我们的应用是这样的:
- 每个用户都必须登录
- 登录页面发回服务器,如果授权用户返回一个 SPA 应用程序。
- SPA 应用完全是 AJAX
- HTTPS
通常我们会发送一个sessionid cookie 和一个csrftoken cookie。令牌 cookie 值将作为 x-header 包含在任何 AJAX 帖子中,并在每个请求的服务器上验证所有内容。
由于 SPA 页面是在将其返回到浏览器之前构建的,因此我们可以在其中嵌入任何我们喜欢的内容。我们希望最终用户能够在多个选项卡上登录,其中一个不影响其他选项卡。
我们宁愿做什么:
- 像以前一样将 sessionid 作为 cookie 发送,但 cookie 名称是随机的。
- 没有 csrftoken,而是在将 x-header 添加到 AJAX 发布请求的 javascript 例程中嵌入随机 cookie 名称。
- 服务器将从 x-header 中获取 sessionid。
这使我们有机会允许多次登录,每次登录都有一个唯一的 sessionid cookie 名称,但每个 post 请求都有一个标准化的 x-header 名称。
这会和 sessionid cookie、csrftoken cookie/x-header 方法一样安全吗?
【问题讨论】:
标签: javascript ajax cookies csrf