【发布时间】:2023-03-26 23:09:02
【问题描述】:
我编写了一个 Spring Web 应用程序。除了一件事之外,相当稳固。应用程序返回一个 HTTP OPTIONS 请求,响应为“允许:GET、HEAD、POST、PUT、DELETE、OPTIONS”,但事实并非如此,只允许 GET 和 POST。其他操作(GET 和 POST 除外)返回“操作不支持”错误 405 和服务器名称和版本...等。安全团队不喜欢服务器的所有详细信息都返回“不支持”错误消息。
我花了很多时间尝试覆盖该错误页面或为 405 引入自定义错误页面......但我没有成功。 我花了一整天的时间试图禁用 HTTP OPTIONS。没有成功。 还有一个细节,我运行 curl 语句来测试:
curl "http://localhost:8080/webappX/welcome.htm" -X PUT -v
我的应用返回:
HTTP Status 405 - Request method 'PUT' not supported
Tomcat/6.0...etc
由于这些数据(tomcat 版本、服务器信息和响应元数据)可能被用于安全攻击,我如何创建一个自定义 405 页面来隐藏我的服务器的详细信息并提供非常少的错误页面? 或者我如何禁用 PUT、DELETE、TRACE、OPTIONS、HEAD,这样 Tomcat 可能会忽略它们或不提供有关我的服务器的内部信息。
谢谢
【问题讨论】:
标签: java spring tomcat servlets spring-security