如何安全地将一段数据放入div标签?

时间:2011-08-25 16:56:40

标签: javascript html ajax json security

我使用ajax从互联网下载JSON文件,然后将其中一个键设置为变量。如何在div标签内获取该变量的内容?我能做到:

theJsonKey = jsonObject.key;  
document.getElementById('theDivTag').innerHTML = theJsonKey;

但这似乎并不安全,因为有人可以将脚本或html放在JSON文件中。

2 个答案:

答案 0 :(得分:2)

最安全/最跨浏览的方式可能就是这样做。 createTextNode innerHTML

document.getElementById('theDivTag').innerHTML = "";
document.getElementById('theDivTag').appendChild(document.createTextNode(theJsonKey));

感谢Matt McDonald为appendChild:P

(我应该看到那个)

答案 1 :(得分:1)

HTML编码幕后发生了什么。

function safeHtml(v) {
    return v.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g, '&apos;');
}

&安培; ==&GT; &放大器;放大器;

&GT; ==&GT; &安培; GT;

&LT; ==&GT; &安培; LT;

“==&gt;&amp; quot;

'==&gt; &安培;者;

获取HTML的字符实体的更完整列表 http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references