Mag*_*nus 3 javascript security http cors
以下MDN文章讨论了CORS头:跨源资源共享(CORS)
我的问题很基本:
给定simple request(不preflighted):添加CORS headers服务器端有什么意义,如果我们发送所请求的资源与HTTP response无关(即发送资源与消息相同CORS response headers)?我认为,CORS headers如果服务器允许,UA只能接收所请求的资源.
发送或不发送资源会不会更容易,具体取决于哪个客户端要求?
对于同域请求(不需要CORS),我同意添加CORS头没什么意义,但同样不会造成任何伤害.
对于跨源请求,标头告诉浏览器是否允许页面访问资源.
值得注意的是,它是控制它的浏览器,因为CORS是一种特定于浏览器的技术.CORS限制不适用于非浏览器HTTP客户端.服务器不直接拒绝访问,它只是添加标题,指示浏览器在给定方案中应该如何处理响应 - 即它是否应该覆盖浏览器实现的正常"同源"策略,以及允许访问资源.
此外,您询问服务器是否更容易拒绝访问资源,具体取决于发出请求的客户端类型.HTTP的设计方式意味着只要符合标准,客户端的人或者内容并不重要.猜测客户端性质的唯一方法是读取User-Agent字符串,但这对于欺骗是微不足道的,因此您永远不能在服务器中使用它来实现与安全相关的任何内容.标准中也没有任何强制性要求您知道请求是否是由AJAX发出的(因为它只是受CORS约束的AJAX请求,只是知道客户端是浏览器在任何情况下都不足以满足需求).