gpt4 book ai didi

javascript - 为什么跨域 AJAX 请求标记为 "security risk"?

转载 作者:搜寻专家 更新时间:2023-11-01 04:50:53 26 4
gpt4 key购买 nike

默认情况下,浏览器不允许跨站点 AJAX 请求。

我知道,设想不当的跨域请求可能会带来安全风险。如果我使用外部站点的 html 或 javascript 并将其“呈现”到我的网站中,那就有问题了。该外部代码可用于许多坏事 - 例如获取对当前用户 session 数据的访问权限。

但如果我只请求 JSON 或 XML 数据,并且我使用适当的库来解析 JSON(而不仅仅是使用 eval),我无法想象这会带来怎样的安全风险。更糟糕的是,来自该网站的内容无法正确呈现。

我错过了什么吗?是否有可能通过向它发送某种恶意数据来破坏读取 json/xml 的页面?

最佳答案

风险不在于发出请求的网站。

例如:

  1. Alice 访问她的银行并登录。
  2. 然后她访问了 Evil Site。
  3. 恶意网站使用 JavaScript 使 Alice 的浏览器向 Her Bank 发出请求
  4. 她的银行以 Alice 的账户详细信息作为响应并将其传递给 JavaScript
  5. 然后 JavaScript 将它们传递给 Evil Site 的 Controller

简而言之——它可以防止攻击者从 Alice 拥有凭据的任何站点(以及位于防火墙后面的站点,例如 Alice 的企业内联网)读取私有(private)数据。

请注意,这不会阻止不依赖于能够从站点读取数据的攻击(CSRF),但如果没有同源策略,针对 CSRF 的标准防御将很容易被击败。

关于javascript - 为什么跨域 AJAX 请求标记为 "security risk"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9228150/

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