在与Liferay一起工作时,响应中经常提到门户:
Liferay-Portal:Liferay Portal Community Edition 6.1.0 CE (Paton / Build 6100 / January 6, 2012)
Server:GlassFish Server Open Source Edition 3.1.1
如何删除这些信息?
无法删除添加到HttpServletResponse
对象中的头信息。解决此问题的唯一方法是使用Filter
包装HttpServletResponse
对象,并忽略您想要忽略的头信息。
这是使用示例代码,
public class EatHeadersFilters implements Filter
{
private List<String> headers;
public void init(FilterConfig filterConfig) throws ServletException
{
String headersString = filterConfig.getInitParameter("headers");
String[] strings = headersString.split(",");
headers = Arrays.asList(strings);
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException
{
filterChain.doFilter(request,
new HttpServletResponseWrapper((HttpServletResponse) response){
public void addHeader(String headerName, String headerValue)
{
if(!headers.contains(headerName)){
super.addHeader(headerName, headerValue);
} else {
//eat the header
}
}
});
}
public void destroy()
{
}
}
Ramesh说得没错,但这是纯Servlet实现。请检查接口com.liferay.portal.kernel.servlet.WrapHttpServletResponseFilter
。它提供了相同的功能。它将在Portlet上下文中运行。
http.header.version.verbosity=partial
# portal-ext.properties:
http.header.version.verbosity=Liferay Portal Community Edition
并在 /tomcat-7.0.27/conf/server.xml 中配置以下内容
<Connector
URIEncoding="UTF-8"
connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
server="My Server!"
/>
资源: http://tech-annex.blogspot.com/2013/01/hidding-server-signaturebanner.html
本文介绍了如何隐藏服务器的标识以增强安全性。通过更改HTTP响应头中的Server字段,可以避免潜在攻击者利用该信息来发起攻击。此外,还提供了一些其他技巧来进一步保护服务器和网站。