2014-09-26 237 views
0

是否正确,请求头中没有“Origin”的请求与受CORS保护的资源访问控制 - 允许源设置为特定的fqdn的请求是否接收到正确的200响应?CORS请求是否允许使用Origin?

我期待着一个错误,比如当Origin被设置为一个不同的fqdn而不是被允许的错误时,它完美地工作。

+2

你观察一个Web浏览器不发送的Origin标? CORS由浏览器强制执行。服务器可能会或可能不会注意Origin标头。 – AgentME 2014-09-26 22:57:43

+0

不,我直接向浏览器的CORS保护的资源发出请求,如果我在header中指定了Origin,它会被阻止,但是如果我没有指定Origin就可以工作,所以我想知道这是否正确。 – 2014-09-26 23:05:52

+2

您不能覆盖CORS AJAX请求中的Origin标头(除非服务器在Access-Control-Allow-Headers中指定Origin,这可能很奇怪,可能也是安全漏洞)。 Origin头文件会自动由您的浏览器设置CORS请求。如果这不是你的问题所在,请包含一个代码示例,因为它不清楚发生了什么。 – AgentME 2014-09-26 23:12:26

回答

0

CORS保护旨在防止使用您的证书在另一个网站上触发一个网站的活动,例如, A.com上的脚本通过AJAX请求向B.com发布数据。

如果站点触发对不同域*的请求,Origin标头将自动由浏览器设置(并且不能被重写)。这是根据第二个站点上的'Access-Control-Allow-Origin'标头进行检查的。

如果您在浏览器中直接访问B.com,那么Origin将会是空白的,因为您位于同一个站点:CORS不相关。手动设置Origin标题将模仿限制行为,但CORS不是为了保护用户而设计的。

*某些类型的请求(例如加载图像或脚本)没有阻止CORS保护

相关问题