关于客户端安全,CORS除了颠覆同源策略之外,还会做其他事情吗
With respect to client side security, does CORS do anything other than subvert same-origin-policy?
(如果没有,它真的能提高客户端的安全性吗?)
我想到的情况是,来自服务器X的脚本使用XHR从服务器Y(支持CORS)获取并运行不受信任的代码。
(显然,评估不受信任的代码是不好的™)
我根本不使用CORS来提高安全性。我使用CORS访问不同域上的已知Web服务,如果没有CORS,我将无法访问该服务。在我看来,这与提高安全性无关,而是允许将一个域的数据委托给另一个域。
CORS不是为了强化安全性,而是为了削弱它(但只有在特定条件下,才能获得服务器的许可)。
如果你想在没有CORS的情况下通过AJAX请求从另一台服务器访问某些内容,那么由于"安全性"(同源策略)的原因,你是不被允许的,这就结束了。有了CORS,另一个服务器就可以允许减少安全屏障。
*除了像JSONP这样的黑客攻击,但这也需要服务器的许可
CORS颠覆了同源策略,但有选择地这样做。例如,银行网站域根本不会设置CORS头(以保持同源完全有效),因为从其他域下载的JavaScript不应该向银行发出AJAX请求(或者他们只允许他们信任的合作伙伴网站)。CDN可能会将Access Control Allow Origin设置为"*",因为它不在乎从另一个域下载的JavaScript是否向CDN发出AJAX请求。
相关文章:
- 如何添加浮动和非浮动,其他
- 与其他库的jQuery.noConflict()
- 播放当前视频时如何停止其他视频?JavaScript
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 除修剪外的其他功能
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- Array.length似乎不起作用;console.log则显示其他情况
- 如何消除代码中的未定义和其他问题
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- Jquery未定义函数正在停止其他操作
- 如何将我的javascript库公开给其他客户端使用
- Javascript阻止其他Javascript代码
- chart.series[id].remove()无法刷新高位图表/高位股票中其他系列的图例属性
- 如何“;过滤器”;或者以其他方式重构该数据
- 向passport.js本地策略添加其他字段
- JSONP、Portholes和其他跨域策略
- 关于客户端安全,CORS除了颠覆同源策略之外,还会做其他事情吗