在维护HTML时避免使用javascript注入?

$("#id").append(dataHtml); 

当注入alert('test)时,屏幕上会出现一个警告框,显示test.I编码html,然后它显示为纯文本。

我从数据库中获取dataHtml的值。由于某些原因,我必须使用javascript / jquery在客户端执行此操作。

在维护html时如何忽略这样的标签/注入?

您可以使用简单的正则表达式删除所有脚本标记:

 dataHtml = dataHtml.replace(/[\s\S]*.*[\s\S]*<\/script>/g,""); 

一些解释:

  • .* :除了换行符之外的所有字符(*次)
  • [\s\S]* :换行

要测试一切是否符合预期,您可以使用在线工具和dataHtml值的示例(例如http://www.regexr.com/ )。

将type属性设置的脚本元素附加到text / javascript以外的其他内容,即如下所示:

  

此脚本标记不会被解析或以javascript身份运行。