Javascript 您认为JSON.PARSE行为是一个漏洞吗?

Javascript 您认为JSON.PARSE行为是一个漏洞吗?,javascript,json,Javascript,Json,如果您计算下面的Javascript代码段,它将弹出一个警报框 JSON.parse(“{”sometext'-alert(document.domain,document.URL)-”:“somevalue”})如果起点是字符串,则不能导致该行为。您的出发点是JavaScript代码,在创建字符串的过程中,您刚刚使用了JavaScript代码,就像这样,没有看到JSON: const str=''sometext'-alert(document.domain,document.URL)-'

如果您计算下面的Javascript代码段,它将弹出一个警报框


JSON.parse(“{”sometext'-alert(document.domain,document.URL)-”:“somevalue”})如果起点是字符串,则不能导致该行为。您的出发点是JavaScript代码,在创建字符串的过程中,您刚刚使用了JavaScript代码,就像这样,没有看到JSON:


const str=''sometext'-alert(document.domain,document.URL)-'”这是如何容易受到攻击的?为了什么?谁会写那个代码这并不是说你可以从一个请求中得到它=代码被执行,因为你就是这样写代码的。。。JSON在解析时不会“执行”。。。您创建的参数在JSON.parse获取要解析的字符串之前运行。我试图给出最糟糕的示例,但假设JSON是基于用户输入的字符串连接创建的。类似于SQLi的东西。我想了解的是,为什么JSON.parse会计算JS而不是仅仅出错..JSON.parse不会计算JS。。。JS将JS计算为一个字符串,并将其传递给
JSON.parse
——同样,您将如何获得任何漏洞。。。除非您使用类似于用户输入的
eval
,否则,易受攻击的不是JSON.parse。。。这是评估。。。你的代码被理解了,T.J.Crowder的例子把它带回家了。就像我所说的,我忽略了显而易见的:)通过专注于
JSON.parse
。谢谢这就是为什么我如此喜欢,得到了有意义的答案,我太专注于JSON.parse调用了,以至于忽略了显而易见的问题。谢谢