据我了解,如果在foo.com页面上运行的客户端脚本想要从bar.com请求数据,则在请求中必须指定标头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标头以外的其他内容来保护该数据。Access- Control-Allow-OriginCORS中的标头仅指示应允许哪个起源发出跨域请求。不要再依赖它了。
Access- Control-Allow-Origin