跨源资源共享(CORS)——我在这里遗漏了什么吗?

2023-12-26

我正在读关于CORS https://developer.mozilla.org/en/HTTP_access_control我认为实施既简单又有效。

然而,除非我遗漏了什么,否则我认为规范中遗漏了很大一部分。据我了解,外国站点根据请求的来源(以及可选的包括凭据)决定是否允许访问其资源。这可以。

但是,如果页面上的恶意代码想要将用户的敏感信息发布到国外站点怎么办?外国网站显然会验证该请求。因此,如果我没有遗漏什么的话,CORS 实际上使窃取敏感信息变得更容易。

我认为,如果原始站点还可以提供允许其页面访问的不可变服务器列表,那就更有意义了。

所以扩展的序列将是:

  1. 提供包含可接受的 CORS 服务器列表的页面(abc.com、xyz.com 等)
  2. 页面想要向 abc.com 发出 XHR 请求 - 浏览器允许这样做,因为它位于允许列表中并且身份验证正常进行
  3. Page 想要向 Malware.com 发出 XHR 请求 - 请求在本地被拒绝(即被浏览器拒绝),因为服务器不在列表中。

我知道恶意代码仍然可以使用 JSONP 来完成其肮脏的工作,但我本以为 CORS 的完整实现将意味着脚本标记多站点漏洞的关闭。

我还查看了官方 CORS 规范(http://www.w3.org/TR/cors http://www.w3.org/TR/cors)并且找不到任何提及此问题的信息。


但是,如果页面上的恶意代码想要将用户的敏感信息发布到国外站点怎么办?

那又怎样呢?无需 CORS,您已经可以做到这一点。即使早在 Netscape 2 中,您就始终能够通过简单的 GET 和 POST 请求将信息传输到任何第三方站点,这些请求的接口非常简单:form.submit(), new Image或设置window.location.

如果恶意代码能够访问敏感信息,那么您就已经彻底失败了。

3)页面想要向malicious.com发出XHR请求 - 请求在本地被拒绝

为什么页面会尝试向尚未列入白名单的网站发出 XHR 请求?

如果您试图防止由于 XSS 漏洞而注入的恶意脚本的操作,那么您只是在尝试修复症状,而不是修复原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

跨源资源共享(CORS)——我在这里遗漏了什么吗? 的相关文章

  • 为什么 JavaScript base-36 转换看起来不明确

    我目前正在编写一段使用 Base 36 编码的 JavaScript 我遇到了这个问题 parseInt welcomeback 36 toString 36 看来要回归了 welcomebacg 我在 Chrome 开发者控制台和 Nod
  • jquery.find() 可以只选择直接子项吗?

    我应该向 jQuery find 提供什么参数来选择元素子元素而不选择其他元素 我不能用 gt 引导选择器 而用 将选择所有后代 而不仅仅是直接子代 我知道 jQuery children 但这是一个库 因此用户能够提供自己的选择器 并且我
  • Web 串行 API - 未捕获(承诺中)DOMException:无法打开串行端口/所需成员 baudRate 未定义

    下面的代码可以在我的 Xubuntu 机器上运行 但现在我在 Kubuntu 上 它不再工作了 它不会打开端口 Arduino IDE 工作正常 可以向开发板写入代码 并且我可以在 Chrome 中选择设备 Arduino Uno 但当我尝
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 如何重置使用 JavaScript 更改的 CSS 属性?

    我的导航按钮的宽度从 100px 增加到 150px 当鼠标悬停在 nav li hover width 150px 但是使用 javascript 我已经做到了 无论选择哪个选项 宽度都将继续为 150px 当选择每个选项时 它会使其他选
  • jqgrid删除:没有获取值

    我使用 JSP 和 Servlet IDE Eclipse 数据库 Oracle10 开发 Web 应用程序 我在用JQGRID以表格格式显示数据 我还想要添加 编辑 删除的功能JQGRID 到目前为止我已经完成了编辑功能 现在我想要Del
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • Meteor:应用程序无法在 0.9.1.1 版本上运行

    出现类似错误 Error TypeError undefined is not a function evaluating Template create anonymous function iron dynamic template j
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • 音频 blob 的 URL.createObjectURL 在 Firefox 中给出 TypeError

    我正在尝试从创建的音频 blob 创建对象 URLgetUserMedia 该代码在 Chrome 中可以运行 但在 Firefox 中存在问题 错误 当我打电话时stopAudioRecorder 它停在audio player src
  • Meteor - 从客户端取消服务器方法

    我正在通过服务器方法执行数据库计数 用户可以选择他们希望如何执行计数 然后调用该方法 我的问题是 计数可能需要一些时间 并且用户可能会在方法运行时改变主意并请求不同的计数 有什么方法可以取消调用的方法并运行新的计数吗 我认为 this un
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • Electron - 为什么在关闭事件时将 BrowserWindow 实例设置为 null

    The 电子文档 https electronjs org docs api browser window 提供以下代码示例来创建新窗口 const BrowserWindow require electron let win new Br
  • 如何使用tampermonkey模拟react应用程序中的点击?

    我正在尝试使用 Tampermonkey 脚本模拟对 React 元素的点击 不幸的是 由于 React 有自己的影子 DOM 所以天真的方法使用document querySelector 不工作 我遇到了一些需要修改 React 组件本
  • 为 illustrator 导出脚本以保存为 web jpg

    任何人都可以帮我为 illustrator CC2017 编写一个脚本 将文件以 JPG 格式导出到网络 旧版 然后保存文件并关闭 我有 700 个文件 每个文件有 2 个画板 单击 文件 gt 导出 gt 另存为 Web 旧版 然后右键文
  • 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

    我从 GitHub 下载了一个我和我的朋友正在开发的项目 但是当我尝试运行时 npm run serve 我收到这个错误 src main js 中的错误 Module build failed from node modules babe
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比

随机推荐

  • 提取两个字符串之间不同的字符

    我用过adist计算两个字符串之间不同的字符数 a lt Happy day b lt Tappy Pay adist a b result 2 现在我想提取那些不同的字符 在我的示例中 我想获取字符串 Hd or TP 没关系 我试着看一
  • 通过 Gmail 发送电子邮件时出现错误

    在这里 我尝试使用 gmail 发送邮件 但出现以下错误 javax mail AuthenticationFailedException 534 5 7 14
  • 在 Laravel 4 中显示自定义验证的错误消息

    我通过创建一个类创建了一个自定义错误函数
  • 未定义参数的性能损失

    我经常在函数中使用可选参数 但一些测试显示它们在 Firefox 和 safari 中性能受到巨大影响 70 95 奇怪的是 如果我传入文字值不明确的那么就没有处罚 这里可能发生什么 我不会认为这是一个作用域链问题 因为它们本质上是函数的本
  • 正则表达式也匹配重音字符

    我有以下 PHP 代码 search foo bar que search string str replace search text This is my foo text with qu and other accented char
  • 如何以只读方式打开 Eclipse 项目?

    有谁知道有没有办法在 Eclipse 中以只读模式打开项目 如果打开了很多类似的项目 很容易对错误的项目进行更改 当您从前一个项目创建另一个实例时 将项目置于只读模式非常有用 因此 您复制旧项目中的所有文件 然后在新实例中进行更改 错误地编
  • Primefaces 数据表的列标题中的工具提示

    在基于的应用程序中JSF 2 1 and Primefaces 6 0 我正在尝试向数据表的标题添加工具提示 在我当前的解决方案中 仅当将鼠标精确指向文本标题 Projekttyp 时才会出现工具提示 我需要每当鼠标指针位于列标题中时就显示
  • 使用 jQuery 和 iFrame 下载大文件 - 需要文件就绪事件,以便我可以隐藏加载 gif

    我正在使用 jQuery 下载一些需要一些时间才能创建的文件 因此我显示了一个加载 gif 来告诉用户要有耐心 但问题是 加载 gif 当前显示和隐藏都在一瞬间 有没有办法让我在下载完成后隐藏加载 gif 并且用户在屏幕上弹出 保存文件 窗
  • Vaadin 为版本控制添加什么

    我们正在使用 Vaadin 14 我们应该将项目中的哪些文件夹提交到版本控制 文件夹node modules非常大 非常耗时 我们应该提交这个吗 node modules目录不应该加入版本控制 package json and packag
  • 通过 Facebook 的图 api 发布状态

    在 PHP 中 我尝试使用图形 api 将状态发布到我们的 Facebook 粉丝页面 尽管遵循 facebook 给出的说明 但以下代码似乎没有更新状态 这是代码 xPost access token key xPost message
  • Android:如何通过xml制作看起来像光环的Circle

    我正在尝试使用带有光环的 xml 制作一个圆圈 光环就像从中心的绿色开始 绿色不断褪色 最后在边缘变得透明 该怎么办呢 我正在尝试使用以下内容
  • 如何在限制 ssh 的防火墙后面通过 https 访问 heroku git

    Heroku 部署在我家里就像一个魅力 但我的办公室网络限制 ssh 这会阻止命令 git push heroku master 有没有办法使用 heroku git 存储库的 https url 来推送我的应用程序 您只能通过 ssh 推
  • @IdClass JPA 注解

    这是我的一个实体的复合主键 public class GroupMembershipPK implements Serializable private static final long serialVersionUID 78164338
  • 切片如何包含自身?

    我正在尝试使用 The Go 编程语言 来学习 Golang 并且我已经到达了关于切片的部分 它们在数组和切片之间进行比较 因为两个数组可以与 其中两片不能 正文如下 operator for arrays of strings it ma
  • Mongo 上按日期字符串(升序)排序

    我有一个数据库 其中的日期列格式为 dd mm yyyy 我想按日期升序排序 cursor collection gt find filter gt sort array date gt 1 tripID gt 1 日期是一个字符串 我也在
  • 立即获取整数中最左边活动位的索引[重复]

    这个问题在这里已经有答案了 如何从左到右而不是从右到左扫描整数 二进制 我知道我可以从左边开始尝试每一位 然后记录最左边的位 但是有没有更快的方法 是否有一个内置函数可以立即找到整数中最左边的有效位 即 1 我知道从右到左 我可以做类似的事
  • 如何在 ASP.NET Core 3.0 Preview 5 中将声明映射选项传递给 IdentityServerJwt?

    灵感来自关于自定义声明的文章 https korzh com blogs net tricks aspnet identity store user data in claims 我已将租户 ID 自定义声明添加到我的身份服务器登录过程中
  • 如何在Android Studio中调试?

    我怎么能够 设置断点 在断点处停止 发布 但保持调试模式 我所说的释放是指不要进入下一行 跳转到下一个断点 或者只是等到断点被击中 我没有时间也没有意愿深入研究 SDK 类 我只是想在完成几行之后就退出 到目前为止 我唯一能做的就是终止调试
  • 如何将 ALAsset 中的视频显示到 UICollectionview ios

    我尝试使用下面的代码从照片库中获取所有视频ALAsset 现在 我想将所有视频显示到UICollectionview但它似乎没有显示任何东西 请给我一些建议 提前致谢 ViewDidLoad 从照片库获取所有视频 allVideos NSM
  • 跨源资源共享(CORS)——我在这里遗漏了什么吗?

    我正在读关于CORS https developer mozilla org en HTTP access control我认为实施既简单又有效 然而 除非我遗漏了什么 否则我认为规范中遗漏了很大一部分 据我了解 外国站点根据请求的来源 以