我如何安全JSON.stringify?

时间:2014-10-07 11:27:45

标签: javascript json

我在包含<script>的字符串上使用JSON.stringify - 标签以及脚本标签以某种方式逃脱并最终出现在我的文档正文中,产生了可怕的结果&#34;注入&#34;数据

我不明白他们如何逃脱,引号等通过JSON.stringify转义。我也试过JSON2.stringify无济于事。

1 个答案:

答案 0 :(得分:2)

如果您使用JSON字符串作为代码(即对象文字),则必须处理脚本标记以防止它们爆发。

在解析内部的Javascript之前,脚本标记被解析为HTML,因此脚本标记位于代码中的字符串内并不重要,HTML解析器仍然可以看到它。这不是特定于JSON字符串的,只要您在Javascript代码中将脚本标记放在字符串中就会发生这种情况。

您可以在脚本代码中添加额外字符,以防止将其解析为HTML代码,例如将其设为<scr\ipt><scr"+"ipt>