我们正在使用fortify扫描Java源代码,并且抱怨以下错误:
Method abc() sends unvalidated data to a web browser on line 200, which can result in the browser executing malicious code.
下面是第200行的代码:
<a href="<%= Util.getProduct(request) %>">Product</a>
和Util.java hsa下面的getProduct方法中的代码:
String prod = request.getParameter("prod");
谁能告诉我如何解决此XSS漏洞?
谢谢!
您需要转义的输出Util.getProduct(request)。通常,这是使用JSTL和<c:out>标签以及EL来完成的:
Util.getProduct(request)
<c:out>
<a href="<c:out value="${Util.getProduct(request)}"/>" class="left_nav_link">Product</a>
注意, 您必须使用EL的最新实现(按照JSTL或JSP2.0EL在EL方法中使用带有参数和Parameters的getter,才能将参数传递给getter方法。