在一般情况下,我们可以在http header里看到服务器构建的信息,如:
Server : Apache/2.0.61 (Unix) X-Powered-By : Servlet 2.4; JBoss-4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA date=200605151000)/Tomcat-5.5
这可能存在一些麻烦,如果让人知道软件版本,特别是在软件有bug的情况下会比较危险,所以我们可以把这些信息屏蔽,不给客户端用户知道.
Server信息这是在apache里控制的,
在httpd.conf里加入一行
ServerTokens Prod
这样,http header里的显示最简单的server信息,当然也可以设置其他的级别,
以下设置的级别和输出信息对照情况:
ServerTokens Prod[uctOnly] Server sends (e.g.):
Server: Apache ServerTokens Major Server sends (e.g.):
Server: Apache/2 ServerTokens Minor Server sends (e.g.):
Server: Apache/2.0 ServerTokens Min[imal] Server sends (e.g.):
Server: Apache/2.0.41 ServerTokens OS Server sends (e.g.):
Server: Apache/2.0.41 (Unix) ServerTokens Full (or not specified) Server sends (e.g.):
Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
X-Powered-By信息这个一般是有应用服务器提供的
如jboss下,他是由一个filter提供的,你可以定义你所需要的信息,具体是在jboss的server/default/deploy/jbossweb-tomcat55.sar/conf/web.xml 这个文件中定义,有这样的几句:
<!-- ================== Common filter Configuration ==================== -->
<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.4; JBoss-4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA date=200605151000)/Tomcat-5.5</param-value>
</init-param>
</filter>
<filter-mapping><filter-name>CommonHeadersFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
这可以在param-value中修改你想要显示的信息,如JBoss等
通过看ReplyHeaderFilter的源代码得知,其实这个filter没有做其他的事情,只是把X-Powered-By信息放到http header中,所以可以全部注释掉,这样http header中就不会有任何X-Powered-By的信息了