阅读有关CORS(跨源资源共享)的信息后,我不了解它如何提高安全性。如果发送了正确的ORIGIN标头,则允许跨域AJAX通信。例如,如果我发送
来源:http://example.com
服务器检查此域是否在白名单中,以及是否在标头中:
访问控制允许来源:[此处接收的网址]
与响应一起发送回去(这是简单的情况,也有预先要求的请求,但问题是相同的)。
这真的安全吗?如果有人想接收该信息,则伪造ORIGIN标头似乎是一件非常琐碎的任务。该标准还指出,该策略是在浏览器中实施的,如果Access- Control-Allow-Origin不正确,则会阻止响应。显然,如果有人试图获取该信息,他将不会使用标准的浏览器来阻止它。
您无法在网络浏览器中使用JavaScript伪造Origin标头。CORS旨在防止这种情况。
在网络浏览器之外,这无关紧要。它并非旨在阻止人们获取可供公众使用的数据。没有公众的了解,您就无法将其公开。
它的设计目的是给定:
如果Bob访问Charlie的网站,则Charlie无法将JS发送到Bob的浏览器,以便它从Alice的网站获取数据并将其发送给Charlie。
如果Bob在Alice的网站上拥有一个用户帐户,从而使他能够执行诸如发表评论,删除数据或查看公众 无法 获得的数据之类的事情,上述情况就变得更加重要- 因为在没有保护的情况下,Charlie的JS可以告诉Bob的浏览器在Bob的背后进行操作(然后将结果发送给Charlie)。
如果要阻止未经授权的人员查看数据,则需要使用密码,SSL客户端证书或其他一些基于身份的身份验证/授权方式来保护数据。