CORS的我应该执行原点头的概念和?(The concept of CORS and should

2019-07-20 00:06发布

据我了解CORS不能确切地保护你的方式,你可以真正确保来电者是谁 。 因为主叫方可以发送任何ORIGIN头他想。 其实我读的地方,你不能设置通过JavaScript起源头,因为它是一个受限制的头 - 但我不是很肯定。 无论如何..如果你要实现自己的HttpClient你可以很容易伪造产地的包头和消费,因此你不应该使用服务。

其次,如果没有指定产地头请求工作为好 。 比如我用谷歌Chrome的邮差扩展,它不发送任何来源头。 事实上,如果你尝试添加一个手动它不通过网络发送它。

因此...

  • ...... 问题1:如果我的应用程序拒绝无任何产地头部的请求? 和...
  • ... 问题2:究竟如何赚取CORS我REST服务更安全?

  • Answer 1:

    有浏览器支持CORS,不支持CORS。 (我们是在CORS的初期,COR​​S规范的跨浏览器的实现并不一致)。

    • 不支持CORS意味着当浏览器检测到跨来源请求,所述请求被阻塞,并且不发送到服务器。
    • 支持CORS意味着浏览器应用CORS政策:发送请求到服务器之前和接收响应之后追加Origin标头,浏览器检查的访问控制允许来源的决定是否丢弃该响应。

    同样的原产地政策旨在减少XSS攻击的风险,这种攻击主要是发生在浏览器中,不太可能在HttpClient的发生。 该CORS政策是放宽同源策略,这样,如果你是这两个网站的所有者,您可以利用这一政策,让你的2个站点之间的通信。

    提示支持CORS意味着浏览器有它已联络服务器后应用跨来源的安全策略,并已获得的响应报头,这意味着即使响应被丢弃,因为所需要的头缺失或指定的请求是由不同的域。 这是一个没有实现CORS和简单地阻止请求,从来没有联系服务器浏览器一个非常不同的方法。

    从这个提取书



    Answer 2:

    CORS的一点是要防止(或允许)的JavaScript在不同的域上运行,从发送AJAX请求到您的API和使用用户的身份验证会话cookie。

    CORS 不能取代适当的认证; 所有做的是防止浏览器作为一个困惑副针对您现有的认证方案。



    文章来源: The concept of CORS and should I enforce an Origin header?