- 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/
我正在尝试学习Rust。我正在阅读一本书online,该书实现了unix程序cat。现在,我试图读取作为像cargo run file1.txt file2.txt这样的参数传递的文件的内容,但是程序
我在 GHC 8.0.1 中遇到了一个带有种类索引 (?) GADT 的奇怪情况,其中在类型与种类签名中引入 foralls 会产生不同的类型检查行为。 考虑以下数据类型: {-# LANGUAGE
我正在使用 Perl 5.10 开发应用程序,HTML::Mason和 Apache 2.2。这是我第一次在大型项目中使用 Perl 5.10。我每隔一段时间就会出现奇怪的行为。应用程序因一个非常奇怪
我正在尝试将文件上传到aws中的rust中,因为我使用的是 rusoto_s3 的s3 rust客户端,当这些部分从单个线程发送时,我设法使分段上传代码正常工作不是我想要的,我想上传大文件,并且希望能
我是一名优秀的程序员,十分优秀!