1

关于通过 XHR2/CORS 访问的资源可以阻止请求的方式,除非它来自白名单域:

  • 读取哪个标头来确定引荐来源域 - 它是标准的 HTTP_REFERRER 吗?
  • 有人可以以某种方式发送假装来自另一个域的请求吗?

我知道 CORS 不是保护数据的可靠方法 - 我只是出于好奇而问。

4

2 回答 2

0

读取的标头是Origin. 与任何 HTTP 标头一样,它可以被伪造。COSR 背后的想法是启用发送数据,同时仍然保护用户/防止滥用用户会话。禁止跨域请求是为了保护用户,而不是服务器。

攻击者应该假装这是另一个域发送请求并发送用户拥有的 cookie。这不是您可以XSS单独实现的 - 您必须窃取 cookie 并自行发送请求。但是您不能从站点 B 窃取站点 A 的 cookie。但是,如果 A 接受来自任何域的请求,通过 B 上的 XSS,您可以欺骗用户的浏览器向 A 发送请求,浏览器将发送 cookie,您可以读取响应背部。

于 2012-12-21T13:31:59.830 回答
0

Origin头包含请求域。

此浏览器完全控制此标头,并且无法伪造。浏览器代表用户控制这个header,用户不能覆盖JS代码中的值。

请注意,我说的是“浏览器”;与任何 HTTP 请求一样,用户可以制作带有任何Origin标头的 curl 请求。但这作为攻击媒介的用途有限,因为黑客必须欺骗有效用户发出正确的 curl 请求,而这不太可能。

于 2012-12-21T15:48:19.580 回答