jakarta-ee - Glassfish server 5.1如何配置不泄露环境信息
问题描述
我们最近进行了 PCI 扫描,其中一个建议是不应披露环境信息。有谁知道如何配置 Glassfish 服务器不泄露服务器信息。
解决方案
我假设您指的是响应标头中的设置。如果是这样,您需要进行三项配置更改,因此启动 Glassfish 并打开其管理控制台。在我的例子中是http://localhost:4848,但你可能有不同的东西。
变化一:
- 选择Configurations > server-config > JVM Settings,然后单击JVM Options 选项卡。
- 单击添加 JVM 选项按钮。添加选项
-Dproduct.name=_{server}
where{server}
可以是任何你想要的,包括一个空字符串。我选择了-Dproduct.name=AnonymousServer
。单击保存。您指定的值将在响应标头的Server字段中设置。
变化2:
- 选择Configurations > server-config > Network Config > Network Listeners > http-listener-1,然后单击右侧面板中的HTTP选项卡。
- 向下滚动并取消选中XPowered By:字段,然后单击Save。
- 这将从响应标头中排除X-Powered-By字段。
变化3:
- 重复上面的更改 2,但选择http-listener-2 ( security enabled ) 而不是http-listener-1 ( security not enabled )。
最后,重新启动 Glassfish,然后在浏览器或 Postman 等工具中连接到您的应用程序,并验证响应标头是否已更改。例如,这里是 Firefox 中一个简单的 Web 应用程序使用其浏览器的开发工具的前后截图。它们显示在配置更改并重新启动后:
- 不再有X-Powered-By响应头字段。
- 服务器字段中的服务器名称已更改(在我的情况下为AnonymousServer ) 。
改动前:
更改后:
推荐阅读
- algorithm - 在 O(n) 中找到最近元素之间的距离
- php - View variable is not accessible in template
- sql - SQLite query to select matching rows and 2 next with highest IDs
- docker - command/CMD in docker-compose is not equivalent to CMD in Dockerfile
- r - How to set different transparencies for different vertices in iGraph
- angular - 无限的角度服务和拦截器
- python - How do you isolate the rows in a DataFrame that are between two times for an if statement?
- docker - 将在发布目录中的文件路径
- c++ - Invoke Qt slot safe from non-qt thread
- tensorflow - AttributeError:模块 'tensorflow' 没有属性 tensordot