Javascript 这是防止跨站点请求伪造(CSRF)攻击的安全方法吗?
因此,我们的应用程序是:Javascript 这是防止跨站点请求伪造(CSRF)攻击的安全方法吗?,javascript,ajax,cookies,csrf,Javascript,Ajax,Cookies,Csrf,因此,我们的应用程序是: 每个用户都必须登录 登录页面发回服务器,如果授权用户返回SPA应用程序 SPA应用程序完全是AJAX HTTPS 通常我们会发送一个sessionidcookie和一个csrftokencookie。令牌cookie值将作为一个x头包含在任何AJAX文章中,并在每个请求中在服务器上验证所有内容 由于SPA页面是在返回浏览器之前构建的,因此我们可以在其中嵌入我们喜欢的任何内容。我们希望最终用户能够登录多个选项卡,其中一个不会影响其他选项卡 我们希望做的是: 像以前一
- 每个用户都必须登录
- 登录页面发回服务器,如果授权用户返回SPA应用程序李>
- SPA应用程序完全是AJAX
- HTTPS
sessionid
cookie和一个csrftoken
cookie。令牌cookie值将作为一个x头包含在任何AJAX文章中,并在每个请求中在服务器上验证所有内容
由于SPA页面是在返回浏览器之前构建的,因此我们可以在其中嵌入我们喜欢的任何内容。我们希望最终用户能够登录多个选项卡,其中一个不会影响其他选项卡
我们希望做的是:
- 像以前一样,将sessionid作为cookie发送,但是cookie名称是随机的李>
- 没有csrftoken,而是在javascript例程中嵌入随机cookie名称,该例程将x头添加到AJAX post请求中李>
- 服务器将从x头获取sessionid
sessionid
cookie名称,但每个post请求都有一个标准化的x头名称
这是否与sessionid cookie、csrftoken cookie/x-header方法一样安全?是的,添加攻击者无法从有效用户会话复制的头是一种方法 e、 可以添加到每个AJAX请求中(默认情况下JQuery会这样做),当服务器端接收到请求时,您只需检查该头是否存在。如果服务器未通过CORS选择,则无法跨域发送此标头 您可以将其与令牌结合使用- e、 g
X-Requested-With: XMLHttpRequest;0123456789ABCDEF