当前位置: 首页 > 知识库问答 >
问题:

Veracode-网页中与脚本相关的HTML标记的不正确中和(基本XSS)

顾正初
2023-03-14

继承了一个遗留应用程序,下面给出了一段代码。

private static void printKeywordCheckboxes(JspWriter out, ArrayList words, int type)
throws IOException {

   LogbookKeyword thisWord;

   Iterator iterWord = words.iterator();
   while (iterWord.hasNext()) {

      thisWord = (LogbookKeyword) iterWord.next();
      out.println("    <input type=\"checkbox\" name=\"keywordCheckbox" + 
         type + "\" value=\"" + 
         thisWord.hashCode() + "\" checked/>" + 
         thisWord.getWord() + "<br>");
   }
}

Veracode在'out.println()'处抛出一个异常“Web页面中与脚本相关的HTML标记(Basic XSS)的不当中和”。

有谁能告诉我这个问题应该如何解决吗?如有任何帮助,将不胜感激。

共有2个答案

艾俊晖
2023-03-14

还需要注意的是,Veracode在Java承认的某些清理功能已经过Veracode的安全团队的审查和确认。您可以在Veracode帮助中心找到这个列表。

贝礼骞
2023-03-14

问题是“单词”被传递到您的方法中,但是在它们被使用之前没有对它们进行中和--单词被“按原样”使用,因此可能包含导致伤害的脚本。有一个很好的描述解释了这一点以及为什么这是一个问题:http://www.veracode.com/images/pdf/top5mostprevalue.pdf

当您生成这个HTML时,您将需要中和用户输入--在将其转化为HTML之前,确保它是无害的。我的Java有点生疏,但谷歌给了我们一些建议:

  • 在Java转义HTML的推荐方法
  • Java转义HTML

请阅读此备忘单上的提示:https://www.owasp.org/index.php/xss_%28cross_site_scripting%29_prevention_cheat_sheet

 类似资料: