我一直想知道XHR跨域限制的目的是什么。
其目的似乎是防止恶意注入的 Javascript 将私有数据发送给攻击者。然而,通过注入可以轻松地将数据发送到任何域script
or img
标签(或任何其他与此相关的外部资源)。
如果任意网站可以对您的网站进行 XHR 调用,则可能会发生以下情况:
- 无辜用户 Alice 登录您的安全网站并获取安全会话 cookie。
- 在另一个浏览器选项卡中,爱丽丝访问鲍勃的邪恶黑客网站(她认为这只是贾斯汀·比伯的视频)
- Bob 的页面向您的安全网站发出 XHR。如果没有跨域策略,浏览器将向您的网站发出请求(包括安全会话 cookie)并检索结果。这些结果可能包括 Alice 在登录您的安全站点时可用的任何内容。
事实上,即使采用了跨域策略,Bob 的邪恶网站实际上也可以通过发布表单向您的服务器发送 HTTP 请求。它无法看到结果,但如果 Bob 很聪明,他可能会在您的站点中发现一个 URL,该 URL 允许通过 POST 进行某些活动,即使它不是来自您某个页面上的表单。这就是所谓的跨站点请求伪造,浏览器无法保护您免受这种情况的影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)