簡體   English   中英

跨站點腳本:DOM Fortify

[英]Cross Site Scripting: DOM Fortify

目前正在為我的一個應用程序代碼解決 DOM XSS 問題,它正在為 winT 報告 XSS(下面提供了偽代碼)。

代碼片段:

Var oMyObj = window.dialogArg;
var winT = oMyObj.title;

<span id="header">
 <script>
      document.write(winT);
 </script>
</span>

我已經嘗試了幾種方法來查看是否有幫助,但到目前為止仍在嘗試......我想在這里請求查看是否有任何選項或方法有助於修復強化 XSS。

我們正在發送 static 信息以在上述情況下打印為頁面/對話框標題和應用程序是防火牆后面的內部/Intranet 應用程序.. 但想看看它是否可以解決

在搜索和閱讀與 XSS 相關的文章后,嘗試了以下操作:

  1. 將“document.write”行轉換為“.textContent”,但它沒有打印值本身
document.getElementsbyId("header").textContent = winT
  1. 嘗試了 innerHTML 而不是 document.write 並打印但沒有糾正 Fortify - 后來意識到 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 發生的原因,這進一步導致無法找到上述問題的正確解決方案。

如果您能提供一些洞察力或正確方向的指導,將會有所幫助。 謝謝。

我已經使用 ESAPI 解決了上述問題

示例片段:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM