跨站脚本:DOM加固



目前正在为我的一个应用程序代码解决DOM XSS问题,它报告了winT的XSS(下面提供了伪代码)。

代码片段:

Var oMyObj = window.dialogArg;
var winT = oMyObj.title;
<span id="header">
<script>
document.write(winT);
</script>
</span>

我已经尝试了几种方法,看看是否有帮助,但到目前为止仍在尝试…我想在这里请求看看是否有任何选项或方法可以帮助修复强化XSS。

我们发送静态信息打印在上述情况下的页面/对话框标题和应用程序是防火墙后的内部/内部网应用程序。但我想看看能否解决

在搜索和阅读与XSS相关的文章后,尝试如下:

  1. 转换行"document.write";.textContent"但是它没有打印值本身
document.getElementsbyId("header").textContent = winT
  1. 尝试用innerHTML代替document。写,打印,但没有纠正加固-后来意识到innerHTML也有XSS

  2. 尝试像下面这样的htmlencoder - fortify仍然报告它为问题。https://portswigger.net/web-security/cross-site-scripting/preventing

function htmlEncode(str){
return String(str).replace(/[^w. ]/gi, function(c){
return '&#'+c.charCodeAt(0)+';';
});
}

也许我缺乏完全理解是什么原因导致XSS发生,这进一步导致无法找到正确的解决方案以上问题。

如果你能提供一些见解或正确方向的指导将会很有帮助。Thx .

我已经使用ESAPI解决了上述问题

示例代码片段:

var reportName = "<%= ESAPI.encoder().encodeForJavaScript(reportName)%>";

相关内容

  • 没有找到相关文章

最新更新