【发布时间】:2014-03-23 06:23:52
【问题描述】:
我真的不明白 Access-Control-Allow-Origin 和 CORS。
如果我允许来自任何域的请求到我的页面,这是否意味着我的页面存在任何安全问题?
我一直认为,SOP 确保不能在页面上运行任何脚本,该脚本从另一台服务器请求数据,因为该数据可能是恶意的。但是,因为提供恶意数据的服务器可以只回复包含Access-Control-Allow-Origin:* 的标头,所以可以从该服务器加载所有内容。
因此,一旦有人设法将一段 JS 代码注入页面,每个恶意代码都可以从属于攻击者的服务器加载。
Unitl 现在我假设我必须启用跨域请求以允许我的页面上的代码从另一个域请求数据,但它似乎是相反的;另一个域必须允许我的域请求数据。
我并没有真正看到这个概念的安全优势。
任何人都可以解释这背后的概念或告诉我我是否完全错了?
【问题讨论】:
-
任何代码都可以从其他服务器加载,只是不能与非jsonp请求进行双向通信。 CORS 是一种握手,表示是的,您可以与我交谈并获取数据。
标签: javascript xmlhttprequest cors same-origin-policy