我们的应用程序就是这样:
通常我们会发送一个sessionid
Cookie和一个csrftoken
Cookie。令牌cookie值将作为x-header包含在任何AJAX帖子中,并在每次请求时在服务器上验证所有内容。
在将SPA页面返回到浏览器之前构建SPA页面时,我们可以嵌入我们喜欢的任何内容。我们希望最终用户能够登录多个标签,而不会影响其他标签。
我们宁愿做什么:
这使我们有机会允许多次登录,每次登录都有一个唯一的sessionid
cookie名称,但每个帖子请求都有一个标准化的x-header名称。
这会像sessionid cookie,csrftoken cookie / x-header方法一样安全吗?
答案 0 :(得分:3)
是的,添加一个攻击者无法从有效用户的会话中复制的标头是执行此操作的一种方法。
e.g。 X-Requested-With
可以添加到每个AJAX请求中(默认情况下JQuery会这样做)并且您只需在服务器端收到请求时检查此标头是否存在。如果没有服务器选择通过CORS,则不能跨域发送此标头。
您可以将其与令牌结合使用 - see my answer here。
e.g。
X-Requested-With: XMLHttpRequest;0123456789ABCDEF