javascript - CORS 是执行跨域 AJAX 请求的安全方法吗?

标签 javascript ajax cross-domain cors

阅读了 CORS(跨源资源共享)后,我不明白它如何提高安全性。如果发送了正确的 ORIGIN header ,则允许跨域 AJAX 通信。例如,如果我发送

来源:http://example.com

服务器检查这个域是否在白名单中,如果是,则 header :

Access-Control-Allow-Origin: [在此处接收 url]

连同response一起发回(这个是简单的情况,也有prefighted requests,但是问题是一样的)。

这真的安全吗?如果有人想要接收信息,伪造一个 ORIGIN header 似乎是一项非常微不足道的任务。该标准还表示该策略在浏览器中强制执行,如果 Access-Control-Allow-Origin 不正确则阻止响应。显然,如果有人试图获取该信息,他将不会使用标准浏览器来阻止它。

最佳答案

目的是为了防止这种情况——

  • 你去网站 X
  • 网站 X 的作者编写了一个发送到您的浏览器的恶意脚本
  • 在您的浏览器上运行的脚本会登录到您的银行网站并做坏事,因为它在您的浏览器中运行,所以它有权这样做。

想法是您的银行网站需要某种方式来告诉您的浏览器是否应该信任网站 X 上的脚本来访问您银行的页面。

关于javascript - CORS 是执行跨域 AJAX 请求的安全方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4850702/

相关文章:

javascript - 使用 JavaScript/Knockout 下拉列表中选定的值填充 MVC3 View 模型?

c# - 使用跨域 WCF 服务时 OPTIONS 方法被拒绝

internet-explorer - 跨域窗口之间的 postMessage 在 IE10 中不起作用(它适用于框架)

javascript - 通过ajax从select框获取值到mysql

javascript - React Native 图像太小,无法在不像素化的情况下调整大小

javascript - 在 RSK Regtest 上开发时如何提前区 block 编号?

javascript - $scope 变量不会在 $interval 函数内更新

javascript - 使用 HTML5、Ajax 和 jQuery 发送表单

javascript - 控制 iframe 将什么视为 window.top?

javascript - 使用 javascript 或 jquery chop 下拉菜单中的项目和选定的项目