JavaScript JSON转义安全性

JavaScript JSON转义安全性,javascript,json,escaping,Javascript,Json,Escaping,有人能解释一下为什么JSON中的字符串会执行吗?(第二个标记及以后。) 风险值数据={ “用户ID”:“576757ef-1234-4aac-aad8-98f9088138f4”, “Firstname”:“Firstnamealert(\“User Firstname security!\”)”, “Lastname”:“Lastnamealert(\“User Lastname security!\”)”, “电子邮件”:“警报(\“用户电子邮件安全性!\”)”, “用户名”:“用户名警

有人能解释一下为什么JSON中的字符串会执行吗?(第二个
标记及以后。)


风险值数据={
“用户ID”:“576757ef-1234-4aac-aad8-98f9088138f4”,
“Firstname”:“Firstnamealert(\“User Firstname security!\”)”,
“Lastname”:“Lastnamealert(\“User Lastname security!\”)”,
“电子邮件”:“警报(\“用户电子邮件安全性!\”)”,
“用户名”:“用户名警报(\“用户用户名安全性!\”)
};
代码是从MVC将数据转换为JSON的结果:

因为浏览器的HTML解析器不理解Javascript。它所看到的是:

<script>
    blah blah blah </script>
    blah blah <script>blah blah</script>
    ...

废话废话
废话废话
...
它将每个
标记的内容分别传递给Javascript解释器

如果要在HTML中嵌入Javascript,则必须对其进行HTML转义,或者需要分解
标记:

'</sc' + 'ript>'
“”
因为浏览器的HTML解析器不理解Javascript。它所看到的是:

<script>
    blah blah blah </script>
    blah blah <script>blah blah</script>
    ...

废话废话
废话废话
...
它将每个
标记的内容分别传递给Javascript解释器

如果要在HTML中嵌入Javascript,则必须对其进行HTML转义,或者需要分解
标记:

'</sc' + 'ript>'
“”

XSS攻击者可以在脚本之前绕过//对吗?XSS攻击者可以在脚本之前绕过//对吗?