如何在STOMP CONNECTED服务器标头中隐藏ActiveMQ代理版本?



我想满足OWASP ASVS 14.3.3的要求,即:

14.3.3 验证 HTTP 标头或 HTTP 响应的任何部分不会公开系统组件的详细版本信息。

对于 ActiveMQ 代理。 我对STOMP协议CONNECTED消息有问题,如下所示:

CONNECTED
server:ActiveMQ/5.15.9
heart-beat:0,10000
session:ID:localhost.local-36323-1578488170638-3:15
version:1.2
user-name:user@example.com

并揭示(假设的邪恶(我的ActiveMQ经纪人版本 所以我的问题是如何隐藏整个server标题,或者如果不可能,可能是它的版本部分。

这可以通过少量黑客操作来完成

  1. 由于标头server由代码中的常量BROKER_VERSION设置 这里
  2. 常量BROKER_VERSION的值从类路径位置读取/org/apache/activemq/version.txt
  3. 我们必须覆盖/org/apache/activemq/version.txt的内容,这些内容令人惊讶地驻留在 activemq-client 中

最新更新