gpt4 book ai didi

javascript - 同源政策目的可疑

转载 作者:行者123 更新时间:2023-12-03 11:07:47 26 4
gpt4 key购买 nike

据我所知,同源策略是为了防止源自(邪恶)域 A 的脚本向(良好)域 B 发出请求 - 换句话说,跨站点请求伪造。

玩了一下,我了解了 Access-Control-Allow-Origin header 和 CORS,据我所知,它允许从好域 B 指定服务器域 A 是允许的来源(因此不是邪恶的)。如果跨域响应中不存在此 header ,则浏览器将不会从中读取任何内容,但无论如何它已经发出了请求。

现在,我不知何故错过了这里的重点。如果域 B 具有 Web 服务 API 以及用户登录时的 cookie 身份验证,基本上邪恶来源 A 可以代表可怜的用户执行任何操作,只是攻击者看不到响应。

我在这里缺少什么?我的推理哪里有问题?

最佳答案

As I read, the same origin policy is about preventing scripts with origin in (evil) domain A to make requests to (good) domain B - in other words cross-site request forgery.

同源策略可防止从另一个源读取不匹配的域、端口或协议(protocol)组合。它没有提到限制请求首先发出

例如

  • http://www.example.com 无法读取 http://www.example.edu
  • 上的任何内容
  • https://www.example.com 无法读取 http://www.example.com 上的任何内容(Cookie 除外,因为 Cookie 的同源策略是不同的)
  • http://www.example.com:8080 无法读取 http://www.example.com
  • 上的任何内容

同源策略不会阻止向另一个域发出请求。只有只读的响应。所以...

  • http://www.example.com 可以通过 AJAX 或表单将数据发布到 http://www.example.edu(即使有凭证,如果第三方浏览器中启用了 cookies)
  • http://www.example.com 可以通过 AJAX 或表单将数据 POST 到 https://www.example.com
  • 就同源政策而言,https://www.example.com 可以将数据发布到 http://www.example.com,尽管当通过 HTTPS 页面访问 HTTP 内容时,浏览器很可能会阻止请求或警告用户。当然,当通过 AJAX 时,通过表单将取决于浏览器和设置
  • http://www.example.com 可以从 http://www.example.edu 加载图像,但是图像数据将无法通过脚本编写

因此 CORS 不会放松现有安全性,它允许一个域选择加入 CORS 并允许另一个域从中读取响应。

关于javascript - 同源政策目的可疑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27761362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com