根据 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 并附加查询字符串时,它会显示第一个请求:
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。
网址如: 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 文档)。
关于java - x-power-by 在响应 header 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36433521/