Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于客户端安全性,CORS除了颠覆同源策略之外是否还做了其他事情?_Javascript_Ajax_Xmlhttprequest_Same Origin Policy_Cors - Fatal编程技术网

Javascript 关于客户端安全性,CORS除了颠覆同源策略之外是否还做了其他事情?

Javascript 关于客户端安全性,CORS除了颠覆同源策略之外是否还做了其他事情?,javascript,ajax,xmlhttprequest,same-origin-policy,cors,Javascript,Ajax,Xmlhttprequest,Same Origin Policy,Cors,(如果不是,它是否真的提高了客户端的安全性?) 我正在考虑这样一种情况,来自服务器X的脚本使用XHR从服务器Y(支持CORS)获取并运行不受信任的代码 (显然,评估不受信任的代码是不好的™) 我根本不使用CORS来提高安全性。我使用CORS来访问不同域上的已知Web服务,如果没有CORS,我将不允许访问这些服务。在我看来,这与提高安全性无关,而是允许将来自一个域的数据委托给另一个域。CORS不是强化安全性,而是削弱安全性(但仅在获得服务器许可的特定条件下) 如果您希望在AJAX请求中从另一台服务

(如果不是,它是否真的提高了客户端的安全性?)

我正在考虑这样一种情况,来自服务器X的脚本使用XHR从服务器Y(支持CORS)获取并运行不受信任的代码


(显然,评估不受信任的代码是不好的™)

我根本不使用CORS来提高安全性。我使用CORS来访问不同域上的已知Web服务,如果没有CORS,我将不允许访问这些服务。在我看来,这与提高安全性无关,而是允许将来自一个域的数据委托给另一个域。

CORS不是强化安全性,而是削弱安全性(但仅在获得服务器许可的特定条件下)

如果您希望在AJAX请求中从另一台服务器访问某些内容,而不使用CORS,则由于“安全性”(同源策略)的原因,您是不被允许的,这就到此为止了*。使用CORS,另一台服务器可以授予权限以减少该安全屏障

*除了像JSONP这样的黑客,但这也需要服务器的许可
CORS颠覆同一来源策略,但有选择地颠覆。例如,银行网站域根本不会设置CORS标头(以保持同一来源完全有效),因为从其他域下载的任何JavaScript都不应该向银行发出AJAX请求(或者可能只允许他们信任的合作伙伴站点).CDN可能会设置访问控制允许源“*”因为它不关心从另一个域下载的JavaScript是否向CDN发出AJAX请求。

脚本本身不受跨域限制。例如,来自域X的脚本可以包含来自域Y的脚本,代码将执行。这可以使用常规脚本标记完成,不带CORS。我知道这一点,i d我不认为这有助于回答这个问题是的,这是我假设的,但它被认为是某种安全改进,所以我的想法是错误的,谢谢。由于CORS,同源策略或多或少是多余的?CORS让您和您的数据服务器能够通信。同源策略仍然适用于任何非imp的服务器lementing CORS。我猜你的意思是,坏人可以用*域实现CORS,这将允许任何域获取他们的数据……你对我的原始问题回答是还是不是?@adam77你原始问题的答案是CORS不做任何与客户端安全相关的事,至少就我所理解的这个短语而言。同源策略可防止针对第三方服务的基于浏览器的拒绝服务攻击。CORS允许第三方服务器通知浏览器不需要该保护。因此,它是(选择性的)安全性减弱。如果原产地相同的政策规定你永远不能打开公寓的门,那么CORS说我们可以为披萨店的家伙破例。