gpt4 book ai didi

javascript - 在 URL 中编码 JSON 时是否存在 XSS 威胁?

转载 作者:搜寻专家 更新时间:2023-11-01 05:25:09 25 4
gpt4 key购买 nike

为了拥有一个 URL 友好的应用程序,我正在存储它的上下文在 URL 中有一个 JSON,它给出类似的东西:

http://mysite.dev/myapppage/target#?context={%22attr1%22%3A{%22target_id-0%22%3A{%22value%22%3A%223%22%2C%22label%22%3A%22Hello%22}}}

编码基本上下文:

{
"attr1":
{
"target_id-0":
{
"value": "3",
"label": "Hello"
}
}
}

我正在序列化我的对象:

JSON.stringify(context)

我正在反序列化它:

var hashParamsElements = window.location.toString().split('?');
hashParamsElements.shift(); // we just skip the first part of the url
var hashParams = $.deparam(hashParamsElements.join('?'));
var contextString = hashParams.context;
var context = JSON.parse(contextString);

上下文仅存储用于读取变量,其中没有计算代码。有人可以告诉我它是否 XSS 安全吗?

如果有威胁:我该如何避免?

最佳答案

这种威胁来自使用不同的解码 JSON 的方法,即 evalnew Function。它们直接执行 JS 代码,因此通过将代码放入 url(并链接到它)来允许非持久性 XSS 攻击。

JSON.parse 没有这个问题,可以安全抵御此类攻击。

See also (json.org).

关于javascript - 在 URL 中编码 JSON 时是否存在 XSS 威胁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11400990/

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