原生JS appendChild veracode XSS (CWE ID 80)

原生JavaScript中的appendChild()方法可能会触发Veracode的XXS(跨站脚本攻击)检查,如果你在使用这个方法时插入了来自不可信来源的、未经适当处理的字符串或DOM元素。为了解决这个问题,你应该确保所有插入到DOM中的内容都经过适当的清洗和转义,以防止XSS攻击。

解决方法:

对于字符串类型的内容,使用textContent或者innerHTML之前,对字符串进行转义处理。

vardiv =document.createElement('div');

div.textContent= escapeHTML(userInput);// 用户输入需要转义

document.body.appendChild(div);

functionescapeHTML(str) {

returnstr.replace(/&/g,'&')

.replace(/</g,'&lt;')

.replace(/>/g,'&gt;')

.replace(/"/g,'&quot;')

.replace(/'/g,'&#039;');

}

对于动态创建的DOM元素,可以先在内存中创建并操作,然后再一次性地添加到文档中,以减少跨站脚本攻击的机会。

varfrag =document.createDocumentFragment();

vardiv =document.createElement('div');

div.textContent='安全的文本内容';

frag.appendChild(div);

document.body.appendChild(frag);

如果你使用的是innerHTML,尽量不要直接将变量插入到这个属性中,而是使用createElement和appendChild来构建DOM。

总结,要解决Veracode关于appendChild()的XXS问题,你需要确保所有插入到DOM中的内容都是经过清洗和转义的,以防止XSS攻击。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一章 1.什么是DOM DOM: Document Object Model(文档对象模型) 是JavaScri...
    fastwe阅读 888评论 0 0
  • BOM DOM BOM 概述: BOM 浏览器对象模型,对于路由的底层就是bom 六大对象 window 全局对象...
    又吃锅包肉阅读 301评论 0 0
  • Javascript操作DOM常用API总结 Posted on 2015-11-30 | In Ja...
    stephenoo阅读 304评论 0 0
  • 原文链接JavaScript原生汇总[https://b...
    未来仍可期阅读 814评论 0 0
  • 插件的需求 我们写代码,并不是所有的业务或者逻辑代码都要抽出来复用。首先,我们得看一下是否需要将一部分经常重复的代...
    心淡然如水阅读 410评论 0 0

友情链接更多精彩内容