Java 前端JBoss的安全问题-OWASP安全性模糊

Java 前端JBoss的安全问题-OWASP安全性模糊,java,security,amazon-ec2,jboss,owasp,Java,Security,Amazon Ec2,Jboss,Owasp,我计划在亚马逊的JBoss6上部署一个EAR应用程序,该应用程序可以在公共网站上获得。我需要不止一个实例,但我不需要集群,ELB可以在我的情况下完成它的工作。在应用程序开发过程中,已考虑了OWASP安全指南。然而,我对OWASP的一个原则有一个问题:隐蔽性安全 我如何才能隐瞒我正在使用JBoss的事实?我有自定义的错误页面,ELB只允许访问我的应用程序的上下文路径,但是,我担心JBoss是否会显示任何特定于JBoss的头。在每个实例中,使用mod_jk或mod_proxy_ajp将Apache放

我计划在亚马逊的JBoss6上部署一个EAR应用程序,该应用程序可以在公共网站上获得。我需要不止一个实例,但我不需要集群,ELB可以在我的情况下完成它的工作。在应用程序开发过程中,已考虑了OWASP安全指南。然而,我对OWASP的一个原则有一个问题:隐蔽性安全

我如何才能隐瞒我正在使用JBoss的事实?我有自定义的错误页面,ELB只允许访问我的应用程序的上下文路径,但是,我担心JBoss是否会显示任何特定于JBoss的头。在每个实例中,使用mod_jk或mod_proxy_ajp将Apache放在JBoss前面只是为了转发请求(如果不必要的话,这是我想要避免的)是否更安全

问候

我如何才能隐瞒我正在使用JBoss的事实

假设JBoss发送一个类似于
服务器:JBoss v1.2.3.4
的响应头,您可以编写一个映射到所有请求的响应头,该请求会用您选择的任意文本覆盖该值,例如:

public class StripHeaderFilter implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
        // process the rest of the chain first
        filter.doFilter(request, response);
        if (response instanceof HttpServletResponse) {
            ((HttpServletResponse) response).setHeader("Server", "It's a secret");
        }
    }

默默无闻的安全原则并不意味着你应该试图隐藏东西。实际上,它的意思正好相反。请不要依赖于隐藏敏感信息,因为它不会真正减慢攻击者的速度,而且会产生错误的安全感

典型JBoss安装的巨大攻击面意味着攻击者很可能知道您正在运行什么。多年来,有许多“产品”声称使用隐藏头等技术隐藏您正在使用的技术的身份。然而,攻击者通常要做的就是删除URL上的几个参数,以获得完整的stacktrace,该stacktrace提供足够的详细信息来确定产品、库、版本等

你可以用这种技术扔掉一些较弱的自动扫描器,但不是任何真正以你为目标的人。原则很好,但它们对解释极为开放,而且常常相互冲突。最好专注于根据OWASP应用程序安全验证标准(ASVS)验证应用程序。

我找到了解决方案

说明如何删除JBoss特定的标头

Tomcat特定的头文件也可以删除,如前所述

问候