- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我读过一篇使用 Cors-Anywhere 的文章提出一个示例 url 请求,这让我想到同源策略是多么容易被绕过。
虽然浏览器会阻止你直接访问error,在没有通过preflight请求时一并取消请求,但是一个简单的节点服务器不需要遵守这样的规则,可以作为代理使用。
所有需要做的就是将 'https://cors-anywhere.herokuapp.com/'
附加到恶意脚本中请求的 url 的开头,瞧,你没有不需要通过 CORS。
作为sideshowbarker pointed out ,部署您自己的 Cors-Anywhere 服务器需要几分钟时间。
这不会让 SOP 作为一种安全措施变得毫无意义吗?
最佳答案
SOP 的目的是按来源隔离浏览器中存储的数据。如果您从 domain1.tld 获得 cookie(或者它在浏览器存储中为您存储数据),domain2.tld 上的 Javascript 将无法获得访问权限。这不能被任何服务器端组件规避,因为该组件仍然无法以任何方式访问。如果没有 SOP,恶意网站就可以在您的浏览器中读取其他网站存储的任何数据。
正如您正确指出的那样,这也与 CORS 相关。通常,您的浏览器不会收到来自与它正在运行的页面来源不同的来源的 javascript 请求的响应。这样做的目的是,如果它有效,您可以从用户登录的站点获取信息。如果您通过 Cors-Anywhere 发送它,您将无法发送其他站点的用户 session cookie,因为你仍然没有访问权限,请求将作为代理发送到你自己的服务器。
Cors-Anywhere 重要的是未经身份验证的 API。某些 API 可能会检查原始 header 并仅响应其自己的客户端域。在这种情况下,当然,Cors-Anywhere 可以添加或更改 CORS header ,以便您可以从自己的托管客户端查询它。但 SOP 的目的并不是为了防止这种情况,即使在这种情况下,API 所有者也更容易将您的请求列入黑名单或限制您的请求,因为它们都由您的服务器代理。
简而言之,SOP 和 CORS 不是我认为您所指意义上的访问控制机制。它们的目的是防止和/或安全地允许对某些资源的跨源请求,但它们并不意味着例如阻止服务器端组件发出任何请求,或者例如尝试验证您的客户端 javascript 本身(这是技术上不可能)。
关于security - 同源策略容易规避?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63435310/
所以我试图让(例如)输入一些值:1 -2 -3 2 5正数的数量是 5 负数的数量是 -3总计为 3 平均值为 0.6我想让它像这样,但是当我运行它时,它不起作用哪一部分是错误的??? import
我编写了一个使用 OpenCV 的 cvCalcOpticalFlowLK 的程序。它在低分辨率网络摄像头输入上表现良好,但我需要在全高清流上运行它,并在对每一帧进行光流分析后进行重要的其他计算。处理
如果我有一个 ruby 脚本 Daemon,顾名思义,它作为守护进程运行,监视系统的各个部分并能够执行需要身份验证的命令,例如更改权限,是否存在一个简单的方法来拥有第二个 ruby 脚本,比如
我们有一个基于 Ant 和 Ivy 的构建管理系统,它基本上由一个共享的 ant 文件和一组围绕目录结构的约定组成。 我试图克服的一个障碍是相当常见的“递归发布”情况。比如说,我们有 5 个内部代码模
我在嵌入式 Linux 环境中遇到了问题。尝试确定它是否可以由应用程序引起。应用程序导致内核崩溃/锁定或终止 init 有多容易? 最佳答案 非根应用程序应该不可能影响任何一个。 以 root 身份运
我目前正在尝试学习 Nim(进展缓慢 - 无法投入太多时间)。另一方面,为了获得一些工作代码,我想对我正在 ruby 中开发的 Nim 应用程序的各个部分进行原型(prototype)设计。 由于
我是一名优秀的程序员,十分优秀!