嵌入式Tomcat强化-如何在Spring引导中更改/覆盖播发的服务器信息



我一直在研究如何在嵌入式tomcat上进行"tomcat强化",但我找不到更改这3个catalina服务器信息属性的方法:server.infoserver.builtserver.number

有没有一种方法可以更改spring application.properties文件中的这3个属性?或者通过任何其他方式?

下面的配置是专门针对ServerInfo.properties而非嵌入式tomcat的tomcat服务器强化指南

理由:
更改server.info属性可能会使攻击者确定哪些漏洞会影响服务器站台

所需配置:

执行以下操作以更改服务器当客户端连接到tomcat时显示的平台字符串服务器

  1. 从catalina.jar文件中提取ServerInfo.properties文件:$cd$catalina_HOME/lib$jar xf-catalina.jarorg/apache/catalina/util/ServerInfo.properties
  2. 导航到创建的util目录cd org/apache/Catalina/util
  3. 在编辑器中打开ServerInfo.properties
  4. 更新ServerInfo.properties文件中的server.info属性。server.info=
  5. 使用修改后的ServerInfo.properties文件更新catalina.jar。$jar uf catalina.jarorg/apache/catalina/util/ServerInfo.properties

更新:

我试图通过用修改过的ServerInfo.properties覆盖tomcat-embed-core-9.0.36来修改应用程序fat jar。但当我通过Java启动应用程序时,我得到了以下错误:

原因:java.lang.IllegalStateException:无法打开嵌套项"BOOT-INF/lib/tomcat-embed-core-9.0.36.jar"。它已被压缩,嵌套的jar文件必须在没有压缩的情况下存储。请检查用于创建可执行jar文件的机制网址:org.springframework.bootloader.jar.JarFile.createJarFileFromFileEntry(JarFile.java:283(网址:org.springframework.bootloader.jar.JarFile.createJarFileFromEntry(JarFile.java:265(网址:org.springframework.bootloader.jar.JarFile.getNestedJarFile(JarFile.java:254(…还有6个

提出了两个解决方案:

  1. 肥罐法->tomcat-embed-core.jar中的ServerInfo.properties进行了修补,并在构建过程中打包了可执行的fat-jar。但需要修补的tomcat-embed-core.jar在repo/artifactory中才能工作。

  2. 薄罐法->可执行jar使用spring-boot精简布局与外部库分离;spring-boot瘦maven插件(用于构建(。这将依赖关系外部化,您可以在本地修补任何jar文件,而不会损坏可执行的瘦jar。

目前,以下是我可以想到的关于如何在春季启动应用程序中强化嵌入式tomcat的两种方法。

我会把这个标记为答案,直到有人想出更好的解决方案。

相关内容

  • 没有找到相关文章

最新更新