Findbugs 说 "HTTP parameter directly written to HTTP header"

Findbugs says "HTTP parameter directly written to HTTP header"

当我执行这些行时

response.setContentType("application/octet-stream");
response.setHeader("content-disposition", "inline; filename='" + fileName + "'");

其中文件名是一个字符串。

还有一个重复的问题是关于获取 headers 并检查它是否为 null。但我的问题是关于设置 headers。 请帮我。 提前致谢。

FindBugs 抱怨您的代码允许响应 header 的值包含从请求中获得的内容,这可能会导致响应成为安全问题(google 对于 "http response smuggling").

除此之外,代码中至少还有两个问题:

  • 此 header 字段中的引号字符是双引号

  • 即使使用引号,您仍可能会创建无效的 header 字段,例如当文件名本身包含双引号或包含 non-ASCII 个字符时

有关详细信息,请参阅 RFC 6266。