英文:
How to Fix Checkmarx Stored XSS issue from a getResultList element
问题
在Java中,以下代码行中:
TypedQuery<T> query=entityManger.createQuery(queryString, clazz);
List<T> result =query.getResultList();
它表明变量 result
需要经过适当的过滤或编码,否则可能会导致跨站脚本攻击。
我已经使用了 HtmlUtils.htmlEscape(queryString)
字符串对象。
任何帮助和建议将不胜感激。谢谢。
英文:
In Java, in the line below:
TypedQuery<T> query=entityManger.createQuery(queryString, clazz);
List<T> result =query.getResultList();
It is saying that the variable result needs to be properly filtered or encoded otherwise it may enable a Cross-Site Scripting Attack.
I have already used HtmlUtils.htmlEscape(queryString)
String object.
Any help and suggestions would be appreciated. Thanks
答案1
得分: 5
Checkmarx最终将查看输出(sink)。然后,您必须对列表中的每个结果项执行htmlEscape。
List<T> newResult = new ArrayList<T>();
for (T temp : result) {
newResult.add(HtmlUtils.htmlEscape((String) temp));
}
英文:
Checkmarx will ultimately look at the sink(output). You will have to then perform htmlEscape in each of the resulting item in the List
List<T> newResult = new ArrayList<T>();
for (T temp : result) {
newResult.add(HtmlUtils.htmlEscape((String) temp));
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论