我有一个返回cookie值的方法,该方法从自动连线的HttpServletRequest
对象获取cookie。我要添加相同的Cookie,以调用restClient
中的另一个服务。
一切正常,但是当我运行Fortify扫描时,它提出了一个高度优先的问题,即request.getCookies()
可能导致服务器端请求伪造。在这种情况下该怎么办?
我已经尝试通过执行此操作来验证cookie字符串
StringEscapeUtils.escapeXml(StringEscapeUtils.escapeHtml(StringEscapeUtils.escapeJavaScript(cookie.getValue())));
但是没有用。
代码如下:
Cookie[] cookies = request.getCookies();
if (cookies == null ) {
return EMPTY;
}
for (Cookie cookie : cookies) {
if (HeaderConstant.ASESSIONID.equals(cookie.getName())) {
return StringEscapeUtils.escapeXml(
StringEscapeUtils.escapeHtml(
StringEscapeUtils.escapeJavaScript(
cookie.getValue())));
}
}
因此,在服务器端进行伪造请求时,Fortify将突出显示"Cookie[] cookies = request.getCookies();"
这一行