Wir unterhalb Aussage haben in Java-Code:seine Verwendung von HttpServletResponse.setHeader (...) könnte verwendet werden, CRLF-Zeichen enthalten
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
Aufgrund dieser Tatsache findbugs wird unter Warnung zu erzeugen:
[INFO] This use of HttpServletResponse.setHeader(...) might be used to include CRLF characters into HTTP headers HTTP_RESPONSE_SPLITTING
Gibt es eine Möglichkeit, diese Warnung zu beheben?
private String safeHttpHeader(String value) {
String result = "";
if (value != null) {
char[] chars = value.toCharArray();
StringBuilder buffer = new StringBuilder(chars.length);
for (int i = 0; i < chars.length; i++) {
switch (chars[i]) {
case '\r':
buffer.append('%');
buffer.append('0');
buffer.append('D');
break;
case '\n':
buffer.append('%');
buffer.append('0');
buffer.append('A');
break;
default:
buffer.append(chars[i]);
break;
}
}
result = buffer.toString();
}
return result;
}
Statement
response.setHeader("Content-Disposition", safeHttpHeader("attachment; filename=\"" + dbFile.getFilename() + "\""));
Hoffe, es hilft:
ist filename ein Anforderungsparameter? – MeBigFatGuy