gpt4 book ai didi

javascript - 以右括号开头的 JSON 数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:46:24 25 4
gpt4 key购买 nike

我发现一个以右括号开头的 JSON 文件用于谷歌的一项服务。以下是一个示例,您会看到它在主要数据部分之前有右括号和单引号。我检查了获取此 JSON 数据的 javascript 代码。他们所做的是在解析数据之前手动删除第一个顺序括号。

)]}'
["value1", "value2"]

这是我的问题。

  1. 这个 JSON 格式有效吗?

  2. 有人知道他们为什么要这样做吗?

最佳答案

这是一种针对所谓的 JSON 劫持攻击的保护措施。客户端在解释之前去除领先的垃圾。

在 JSON 劫持攻击中,用户在一个选项卡中登录到应用程序,这意味着浏览器将其身份验证 token 保存在 cookie 中。然后黑客安排用户在另一个选项卡中打开恶意应用程序。该选项卡中的 HTML 包含一个 script 标记,其 src 设置为第一个应用程序的某些 JSON API 的 URL。因为它是一个脚本标签,所以没有同源检查。由于浏览器在请求中包含有效凭据,因此第一个应用程序会继续并返回 JSON,其中可能包含 secret 信息。由于 JSON 是有效的 JavaScript,因此浏览器会执行它,这本身不会导致任何事情发生,但黑客随后可以通过检查脚本标记的内容来检索 JSON。

通过将垃圾放在JSON前面,它不能被解析为有效的JS。因此,浏览器会出错,不会将内容加载到恶意应用程序的脚本标签中,因此无法对其进行检查。不同 vendor 使用各种“口味”的垃圾;谷歌就是其中之一。

现在有几种针对 JSON 劫持的内置对策,它不再是一种威胁,除非在没有正确设置 header 的旧浏览器上。

关于javascript - 以右括号开头的 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26955167/

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