嵌入式Tomcat强化-如何在Spring Boot中更改/覆盖广告服务器信息?

季节:

我一直在挖怎么办“的tomcat硬化”嵌入式Tomcat和我不能找到一种方法来改变这些3卡塔利娜服务器信息属性:server.infoserver.builtserver.number

有没有办法在spring application.property文件中更改这3个属性?还是通过其他方式?

下面的配置是专门针对ServerInfo.properties强化Tomcat服务器的指南,但不适用于嵌入式tomcat。

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

所需配置:

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

  1. 从catalina.jar文件中提取ServerInfo.properties文件:$ cd $ CATALINA_HOME / lib $ jar xf catalina.jar org / 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.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和

季节:

提出了两种解决方案:

  1. Fat jar方法 -> tomcat-embed-core.jar中的ServerInfo.properties已修补,并且在构建过程中打包了可执行的Fat jar。但是需要修补的tomcat-embed-core.jar可以在repo / artifactory中才能正常工作。

  2. Thin Jar方法 ->可执行jar与外部库分开,使用spring-boot-thin-layout和spring-boot-thin-maven-plugin(用于构建)。这样可以将依赖关系外部化,在这里可以在本地修补任何jar文件而不会破坏可执行的Thin jar。

目前,这是我可以想到的两种在Spring-boot应用程序中强化嵌入式tomcat的方法。

在有人提出更好的解决方案之前,我会将此标记为答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring Boot嵌入式tomcat日志

Spring Boot嵌入式Tomcat性能

在Linux的嵌入式Tomcat服务器中运行Spring Boot应用程序

Spring Boot服务器无法启动嵌入式Tomcat服务器

如何在嵌入式tomcat中添加ServletContextListener

如何在Spring Boot和嵌入式Tomcat中设置mod_reqtimeout?

如何在Spring Boot中设置嵌入式tomcat的日志记录级别?

使用Spring Boot在嵌入式Tomcat服务器上部署资源

在Spring Boot嵌入式Tomcat中配置maxKeepAliveRequests

Netbeans 8.2:如何在 osx 上的 Spring.Boot 项目中停止嵌入式 Tomcat?

如何在Spring Boot应用程序中排除嵌入式Tomcat

如何关闭Spring Boot嵌入式服务器

Spring Boot:WebServerException:无法启动嵌入式Tomcat

修改Spring Boot嵌入式Tomcat提取路径

Spring Boot,无法初始化嵌入式tomcat

将Spring Boot Weblfux与嵌入式Tomcat结合使用

Spring Boot Jetty / tomcat嵌入式访问日志配置

Spring Boot 的嵌入式 Tomcat 忽略访问日志配置

使用Spring Starter更改嵌入式tomcat的版本

在大型企业中运行Spring Boot Microservices是否需要嵌入式Tomcat服务器的许可证?

如何在现有的Spring Boot应用程序中更改嵌入式tomcat的版本?

嵌入式Tomcat 8.0.21中的Spring WebSocket

如何使用Spring Boot覆盖嵌入式Tomcat的websocket.textBufferSize属性?

如何在Spring Boot嵌入式tomcat中设置HTTPS SSL密码套件首选项

无法启动 bean 'webServerStartStop';无法启动嵌入式 Tomcat 服务器 - spring-boot-starter-web

如何使用嵌入式Tomcat容器在Spring Boot中创建JNDI上下文

如何使用gradle在Spring Boot的嵌入式tomcat中运行外部war文件?

如何在Spring Boot应用程序中将用户添加到嵌入式tomcat?

如何将简单的Spring Boot(带有Gradle构建系统)部署到Apache Tomcat(真实服务器,而不是嵌入式服务器)?