- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
根据我对 CORS 的了解,它是这样工作的:我有一个站点 foo.com,它提供一个页面 X。X 想将数据发布到另一个域 bar.com。如果 bar.com 启用了 CORS(其 header 生成 Access-Control-Allow-Origin foo.com),那么页面 X 现在可以将数据发送到 bar.com。
据我了解,要让 CORS 正常工作,一切都与在 bar.com 上进行设置有关,与 foo.com 无关。这一切都是为了确保 bar.com 不接受来自任何旧域的请求。
但是这真的对我来说没有意义。我认为 CORS 旨在使 foo.com 能够决定允许 X 与谁通信。如果我们回到前面的示例,但这次 X 被狡猾的脚本破坏,因此它 secret 地将数据发送到 evil.com,CORS 将如何阻止它? evil.com 启用了 CORS,并设置为 *,因此它将接受来自任何地方的请求。这样一来,用户认为他们使用的是网站 foo.com,却无意中将数据发送到 evil.com。
如果真的是关于 bar.com 保护自己,那么它为什么要让浏览器执行该策略?。如果你有 evil.com 提供页面 Y 来模拟 foo.com,并试图将数据发送到 bar.com,那么这是唯一可以想象的情况。但是 CORS 是由浏览器强制执行的,你所要做的就是让 evil.com 成为一个代理,向 bar.com 发送伪造的来源请求(数据从 Y 到 evil.com,evil.com 将其伪造的来源设置为 foo .com 然后将其发送到 bar.com)。
只有反过来才有意义。 foo.com 启用了 CORS,其 header 设置为 Access-Control-Allow-Origin bar.com。这样浏览器就会拒绝访问 evil.com。然后,浏览器执行该策略是有意义的,因为它运行的脚本可能会出错。它不会阻止 rouge 网站试图将 rouge 数据发送到 bar.com,但 bar.com 可以使用用户名/密码来保护自己。如果 foo.com 的端点期望从 X 返回数据,那么您可以将 token 嵌入到 X 中,以确保 evil.com 不会向它发送数据。
我觉得我没有理解这里最重要的事情。非常感谢您的帮助。
最佳答案
However this really doesn't make sense to me. I thought CORS was designed to enable foo.com to dictate who X is allowed to communicate with.
不,这是关于 bar.com 控制对其内容的使用。
But CORS is enforced by the browser, all you'd have to do is make evil.com a proxy that sends faked origin requests to bar.com...
是的。如果您这样做,并且 bar.com 的人员注意到并关心,他们将拒绝来自您的服务器的请求。你移动它,他们不允许新的。打地鼠时间。但是,尽管这种打地鼠游戏很痛苦,但与请求直接来自 foo.com 的每个用户(从他们的桌面)相比,痛苦要小得多。
让 foo.com 强制执行 foo.com 可以做的事情没有任何意义。 foo.com 已经强制执行 foo.com 可以做的事情,因为 foo.com 为 foo.com 的内容和脚本提供服务。
关于javascript - 对跨源资源共享 (CORS) 的工作方式感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27583161/
我尝试访问此 API click here for more info POST https://api.line.me/v2/oauth/accessToken 但总是得到错误: XMLHttpRe
我在掌握 CORS 概念时遇到问题... 我认为同源策略保护应用程序不会对“不受信任的域”进行 ajax 调用。所以, mydomain.com 向 发出 ajax 调用somedomain.com
一个技术性很强的问题,可能只有了解浏览器内部结构的人才能回答...... 浏览器缓存 CORS 预检响应的准确程度如何(假设在对 OPTIONS 预检请求的响应中返回了 Access-Control-
我一直在阅读 CORS以及它是如何工作的,但我发现很多事情令人困惑。例如,有很多关于事情的细节,比如 User Joe is using browser BrowserX to get data fr
在 OWASP site 上看到这个矛盾,我感到很困惑。 CORS 备忘单: 使用 Access-Control-Allow-Credentials: true 响应 header 时要特别小心。将允
我们无法在飞行前恢复使用 cors:任何帮助都非常感谢 ==========错误========================== About to connect() to localhost p
跨域请求字体文件时,您必须确保允许请求域使用 CORS header 访问字体文件: 访问控制允许来源 访问控制允许凭据 然而,这在请求图像时不是必需的,无论是对于 img元素或 background
CORS 规范没有说明服务器应如何响应无效的 CORS 请求。例如,如果请求 Origin 无效,则 CORS spec states :“终止这组步骤。请求超出了本规范的范围。”其他错误情况也有类似
我在理解同源策略和“解决”它的不同方法时遇到了一些麻烦。 很明显,同源策略是作为一种安全措施而存在的,因此来自服务器/域的一个脚本无法访问来自另一个服务器/域的数据。 也很明显,有时能够打破此规则很有
我正在尝试使用 cloudformation 在 API Gateway 中部署 API。这些方法需要启用 CORS,我遵循此处的模板 Enable CORS for API Gateway in C
我正在构建一个使用 CORS 的 REST 应用程序。每个 REST 调用都是不同的,我发现获取预检 OPTIONS 调用会产生很大的开销。有没有办法缓存并应用预检选项结果,以便对同一域的任何后续调用
我正在将我的 WebApi 升级到 MVC6。 在 WebApi 中,我可以拦截每个 HTTP 请求,如果是预检,我可以用浏览器可以接受的 header 进行响应。 我正在尝试找出如何在 MVC6 W
假设一个 CORS 预检请求进来了,但它为一个或多个 Access-Control-Request-* 指定了一个不受支持的值。标题。服务器应该如何将其传达回浏览器? 一些例子: 浏览器发送带有 Ac
问题中的一切。 附加信息: 使用 Win 10,GraphDB 免费,9.1.1 • RDF4J 3.0.1 • Connectors 12.0.2 我在控制台 => 设置中添加了 graphdb.w
我正在尝试通过 jQuery 调用 Sonar 网络服务之一。由于调用是跨域进行的,因此调用在 Chrome 上失败并出现以下错误: 请求的资源上不存在“Access-Control-Allow-Or
我想使用 NestJs api,但我在每个 fetch 中都收到相同的错误消息: Access to fetch at 'http://localhost:3000/articles' from or
我不确定这是否属于这里,但我在开发我的 svelte 应用程序时遇到了问题。 在开发过程中,它目前在独立服务器上运行(遵循使用 rollup 和 sirv 的指南)并针对不同端口上的后端 API。 稍
如果在服务器上正确设置 CORS 以仅允许某些来源访问服务器,这是否足以防止 XSRF 攻击? 最佳答案 更具体地说,很容易错误地认为如果 evil.com 由于 CORS 无法向 good.com
我在 Istio 入口上启用 CORS 时遇到问题。正如 Istio Ingress 文档所述,“ingresskubernetes.io”注释将被忽略。是否可以在 Istio 入口上启用 CORS?
我在 Istio 入口上启用 CORS 时遇到问题。正如 Istio Ingress 文档所述,“ingresskubernetes.io”注释将被忽略。是否可以在 Istio 入口上启用 CORS?
我是一名优秀的程序员,十分优秀!