我一直在挖怎么办“的tomcat硬化”嵌入式Tomcat和我不能找到一种方法来改变这些3卡塔利娜服务器信息属性:server.info
,server.built
,server.number
有没有办法在spring application.property文件中更改这3个属性?还是通过其他方式?
下面的配置是专门针对ServerInfo.properties强化Tomcat服务器的指南,但不适用于嵌入式tomcat。
理由:
更改server.info属性可能使攻击者更难确定哪些漏洞影响了服务器平台。所需配置:
执行以下操作来更改客户端连接到tomcat服务器时显示的服务器平台字符串。
- 从catalina.jar文件中提取ServerInfo.properties文件:$ cd $ CATALINA_HOME / lib $ jar xf catalina.jar org / apache / catalina / util / ServerInfo.properties
- 导航到已创建的util目录cd org / apache / Catalina / util
- 在编辑器中打开ServerInfo.properties
- 更新ServerInfo.properties文件中的server.info属性。server.info =
- 使用修改后的ServerInfo.properties文件更新catalina.jar。$ jar uf catalina.jar组织/apache/catalina/util/ServerInfo.properties
更新:
我尝试通过使用已修改的ServerInfo.properties覆盖tomcat-embed-core-9.0.36来修改应用程序胖子。但是,当我通过Java启动应用程序时,出现了以下错误:
引起原因:java.lang.IllegalStateException:无法打开嵌套条目“ BOOT-INF / lib / tomcat-embed-core-9.0.36.jar”。它已被压缩,嵌套的jar文件必须未经压缩地存储。请在org.springframework.boot.loader.jar.JarFile.createJarFileFromEntry(JarFile.java)的org.springframework.boot.loader.jar.JarFile.createJarFileFromFileEntry(JarFile.java:283)处检查用于创建可执行jar文件的机制。 :265),位于org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:254)... 6和
提出了两种解决方案:
Fat jar方法 -> tomcat-embed-core.jar中的ServerInfo.properties已修补,并且在构建过程中打包了可执行的Fat jar。但是需要修补的tomcat-embed-core.jar可以在repo / artifactory中才能正常工作。
Thin Jar方法 ->可执行jar与外部库分开,使用spring-boot-thin-layout和spring-boot-thin-maven-plugin(用于构建)。这样可以将依赖关系外部化,在这里可以在本地修补任何jar文件而不会破坏可执行的Thin jar。
目前,这是我可以想到的两种在Spring-boot应用程序中强化嵌入式tomcat的方法。
在有人提出更好的解决方案之前,我会将此标记为答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句