当前位置:  开发笔记 > 前端 > 正文

REST和CSRF(跨站点请求伪造)

如何解决《REST和CSRF(跨站点请求伪造)》经验,为你挑选了1个好方法。

跨站点请求伪造是否可以对抗无状态RESTful服务?

我不是在谈论伪REST,服务器会记住你是通过cookie登录的.我说的是没有cookie的纯无应用程序状态的服务器REST.

我正在使用SSL和基本身份验证.对于每个请求,该Authorization标头必须在那里.尽管在SSL级别存在某种会话,但JSP意义上没有"会话".

因此,我们假设我正在查看发出Ajax请求的合法网页,并且我会以某种方式转到同一选项卡或不同选项卡中的不同页面,并且该页面发出相同的Ajax请求.(我假设合法网页上没有恶意代码;这完全是另一回事,在这种情况下一切皆有可能.)

当第二个页面发出Ajax请求时,浏览器是否会放置相同的Authorization标头?也就是说,浏览器会说"哦,你想再去那里?嘿,我碰巧还有钥匙!"?

此外,恶意脚本无法执行xhr请求,然后在回调中从ioargs获取请求,获取Authorization标头并取消Base64的名称和密码?



1> Stefan Tilko..:

免责声明:我不是安全专家。

使用HTTP基本身份验证不会阻止通过GET请求进行CSRF攻击。例如,其他人可以在其HTML页面中包含一个img标记,该标记对某些知名URI进行GET,您的浏览器将很高兴发送基本的身份验证信息。如果GET操作是“安全的”(这是声称是RESTful的任何事物的#1规则),那么这将不会造成问题(超出浪费的带宽)。

由于同源策略,Ajax没问题。

仅在您生成的HTML中包含服务器生成的令牌,并验证其在表单提交请求中的存在,才能保护您免受其他人的干扰,只需在其页面中包含“外国”表单即可。您可以将其限制为浏览器生成的内容类型。对于XHR请求,无需这样做。

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有