2012-12-27 74 views
0

头的值,我实现一个过滤器来设置读响应X-XSS-保护响应头

httpServletResponse.setHeader("X-XSS-Protection", "1; mode=block"); 

我写的过滤器。我想检查它的工作是否完美。

我想从响应对象中读取头文件。但我不知道该怎么做。

任何人都可以告诉如何去做。

或者如果有更好的办法,让我知道。

编辑

更新我得到“XSSnull”

代码

public void doFilter(final ServletRequest req, final ServletResponse res, final FilterChain filterChain) 
      throws IOException, ServletException 
      { 

     final HttpServletResponse response = (HttpServletResponse) res; 
     final HttpServletRequest request = (HttpServletRequest) req; 

     //set X-XSS-protection in http header, other http headers can be added in same way 
     String value = enable ? "1" : "0"; 

     if(block) 
     { 
      value += "; mode=block"; 
     }  

     PrintWriter out = response.getWriter(); 
     out.println("ready to set xss"); 
     response.setHeader("X-XSS-protection", value); 
     out.println("<br/><br/>Xss has been set");   
     filterChain.doFilter(req, res); 
     out.println("<br/><br/>XSS"+request.getHeader("X-XSS-protection"));  

     out.println("<br/><br/>job done"); 
    } 

请帮助我如何纠正它。

在此先感谢。

+0

假设你可以将你的过滤器放在一个简单的servlet中,你可以在Jetty/Tomcat容器中支持它并执行'curl -i http:// localhost:8080/context-root/foo' :) – Charlie

回答

1

您可以获取和读取响应读者这样

request.getHeader("name of the header"); 

我猜你的情况,你的目标是这样的事情

request.getHeader("X-XSS-Protection"); 

编辑

更多澄清,你可以想一下请求和响应的一些类比。

  • 要求 - 您要发送的内容。

  • 响应 - 您收到

什么有关请求和响应,请参考this指导,如果将containt您需要了解请求和响应头的所有信息的详细信息。具体转到'Handling Http Response Headers'

+0

谢谢你的回应。你能澄清一下request.getHeader如何获得响应头。 – Patan

+0

对不起,我不明白你的评论会考虑改写它。我已经更新了它。 – KyelJmD

+0

我对造成混乱表示歉意。 “request.getHeader”实际上是读取请求对象的权利。它会读取响应头文件吗? – Patan