x-power-by 响应显示 header

x-power-by display in response header

根据 Web 应用程序 x-power-by 的安全性,当它在响应 header 中显示时应设置为空。 在我们的应用程序中,我们通过实现过滤器来做到这一点。

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
            ServletException {
    // App specific logic...
    HttpServletResponse httpResponse = (HttpServletResponse) response;
    httpResponse.setHeader("X-Powered-By","");
    chain.doFilter(request, response);
 httpResponse.setHeader("X-Powered-By"," ");
}

当点击 URL 时,x-power-by 的响应 header 显示空白值,这很好,但是在我们的应用程序中,当我们点击 URL 时查询字符串附加 URL 然后对于它显示的第一个请求:

x-power-by= JSF1.2

我们还在 web.xml 中注释掉了 x-power-by 的以下部分,因为我们的应用程序使用 jboss 5.0.1.

<filter>
      <filter-name>CommonHeadersFilter</filter-name>
      <filter-class>
         org.jboss.web.tomcat.filters.ReplyHeaderFilter</filter-class>
         <!--
      <init-param>
         <param-name>X-Powered-By</param-name>
         <param-value>Servlet 2.5; JBoss-5.0/JBossWeb-2.1</param-value>
      </init-param>
      -->
   </filter>

但是,当我第一次点击 URL 并附加了查询字符串时,我会在响应 header 中显示 x-power-by 并执行上面提到的所有两件事。

URL 喜欢: https://example.com?html="abcd",p_ab="shdhsgdhs"

不知道如何解决,非常感谢任何帮助。

1) 将以下条目添加到您的应用程序 web.xml.

<context-param> 
<param-name>com.sun.faces.sendPoweredByHeader</param-name> 
<param-value>false</param-value> 
</context-param>

2) 我认为您不需要任何过滤器来覆盖此 header(基于 jboss 文档)。