我理解的方式是,如果在 foo.com 的页面上运行的客户端脚本想要从 bar.com 请求数据,则在请求中它必须指定 header Origin: http://foo.com,并且 bar 必须以Access-Control-Allow-Origin: http://foo.com.
Origin: http://foo.com
Access-Control-Allow-Origin: http://foo.com
有什么方法可以阻止来自站点 roh.com 的恶意代码简单地欺骗标头来Origin: http://foo.com请求来自 bar 的页面?
浏览器可以控制设置Origin标题,用户不能覆盖这个值。因此,您不会看到Origin从浏览器中欺骗的标头。恶意用户可以制作手动设置Origin标头的 curl 请求,但此请求可能来自浏览器外部,并且可能没有特定于浏览器的信息(例如 cookie)。
Origin
请记住:CORS 不是安全性。不要依赖 CORS 来保护您的网站。如果您正在提供受保护的数据,请使用 cookie 或 OAuth 令牌或标头以外的其他东西Origin来保护该数据。CORS 中的Access-Control-Allow- Origin标头仅指示应允许哪些来源发出跨域请求。不要再依赖它了。
Access-Control-Allow- Origin