我有一个返回 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();"
为服务器端请求伪造