我在包含<script>
的字符串上使用JSON.stringify - 标签以及脚本标签以某种方式逃脱并最终出现在我的文档正文中,产生了可怕的结果&#34;注入&#34;数据
我不明白他们如何逃脱,引号等通过JSON.stringify转义。我也试过JSON2.stringify无济于事。
答案 0 :(得分:2)
如果您使用JSON字符串作为代码(即对象文字),则必须处理脚本标记以防止它们爆发。
在解析内部的Javascript之前,脚本标记被解析为HTML,因此脚本标记位于代码中的字符串内并不重要,HTML解析器仍然可以看到它。这不是特定于JSON字符串的,只要您在Javascript代码中将脚本标记放在字符串中就会发生这种情况。
您可以在脚本代码中添加额外字符,以防止将其解析为HTML代码,例如将其设为<scr\ipt>
或<scr"+"ipt>
。