在添加到DOM之前,我是否需要进行字符串卫生?

时间:2009-05-20 09:04:37

标签: javascript html dom escaping

在我们的团队中,我们提出了在添加到DOM之前必须对字符串进行清理的想法。如果在setAttribute和<中使用它们,我们预计至少双引号会很麻烦。和>如果添加到节点内容中。

第一次测试显示出不同的东西。我们使用innerHTML来设置节点内容。这会通过它自己逃脱所有不安全的角色。但即使是setAttribute确实逃脱了<和>

总是如此,因为我在谷歌上找不到任何东西?我不知道是否有那些会失败的浏览器。

1 个答案:

答案 0 :(得分:2)

innerHTML正在编辑元素中的HTML并从中生成DOM节点 - 您需要根据常规规则编写HTML(例如,除非后跟非名称字符,否则不能使用<字符)。浏览器会执行通常的错误恢复。

我不明白为什么你的innerHTML经验与此不同。

createTextNode,setAttribute等直接编辑DOM。不涉及HTML,因此您不必处理HTML中具有特殊含义的字符。