2012-12-27 73 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