Cors COR是否可以防止;网络拓扑冲突;?

Cors COR是否可以防止;网络拓扑冲突;?,cors,Cors,我正在搜索默认情况下在浏览器上禁用CORS的原因。 我想我在一篇旧帖子中找到了一个答案,上面有一个例子 这里主要关注的是基于网络拓扑的访问控制假设您在家庭网络上运行HTTP服务(事实上,如果您的路由器本身有一个Web接口,您几乎肯定会这样做)。我们将此服务称为R,只有连接到家庭路由器的机器才能访问此服务。 当您的浏览器访问evil.example.com时,该网站会为您的浏览器提供一个脚本,告诉它获取R的内容并将其发送回evil.example.com。这可能是不好的,即使没有凭据,因为这违反了

我正在搜索默认情况下在浏览器上禁用CORS的原因。 我想我在一篇旧帖子中找到了一个答案,上面有一个例子

这里主要关注的是基于网络拓扑的访问控制假设您在家庭网络上运行HTTP服务(事实上,如果您的路由器本身有一个Web接口,您几乎肯定会这样做)。我们将此服务称为R,只有连接到家庭路由器的机器才能访问此服务。 当您的浏览器访问evil.example.com时,该网站会为您的浏览器提供一个脚本,告诉它获取R的内容并将其发送回evil.example.com。这可能是不好的,即使没有凭据,因为这违反了本地网络之外没有人可以查看本地网络内运行的服务的假设。同源策略阻止这种情况发生

然后我读了一篇关于CORS机制的评论,听起来不错

CORS基于API返回的响应头。拒绝响应请求的不是API,而是web浏览器明确禁止处理响应。API将正常处理该请求

因此,我怀疑第一个引用的“示例”:既然启用CORS是通过在服务器响应中设置正确的头文件(访问控制允许源文件,…)来完成的,那么如果绕过它,“evil.example.com”只需“将头文件设置到其响应中,以便在客户端上启用CORS”,会有什么样的保护


如果是这样的话,有没有其他简单的例子说明为什么CORS被禁用?

CORS是一个禁用同一来源策略的系统。这是一种放松安全性的手段,而不是安全特性

同源策略防止Site Evil使用用户的浏览器(和凭据)从Site Secret读取数据

Site Evil无法添加CORS头以禁用同源策略并允许其读取站点机密。只有网站机密才能做到这一点


同一原产地的政策不会对其进行保护。如果Site Trusted允许HTTP请求进行需要身份验证的更改,则应采取措施确保其不易受到CSRF的攻击。

关于“Site Evil无法添加CORS头以禁用同源策略并允许其读取Site Secret。只有Site Secret可以做到这一点。”您能详细介绍一下吗?如果用户(doman X上的客户端)进入site evil(域Y),从而向其发送请求,为什么site evil不能简单地将CORS头添加到响应中(使用恶意脚本),让用户使用恶意脚本处理请求?@barsyu435-site evil的响应可以通过CORS授予权限,用于其他站点的JavaScript访问站点。只有受信任的站点才能向受信任的站点添加标题。