我試過很多方法使用httponly
標誌來防止XSS
攻擊,但都失敗了。HttpOnly標誌不能在tomcat6.0.36上工作
普通的方法是,在使用的HttpOnly = true
在context.xml中
對於測試結果:在Java代碼設置兩個測試參數在cookie並在前面的jsp文件包括JavaScript來提醒document.cookie
,所述在java代碼中設置的兩個測試參數被獲取並顯示在警報中。
Java代碼:
Cookie cookie = new Cookie("httponlytest","testsss");
response.addCookie(cookie);
Cookie cookie1 = new Cookie("testhttponly","successfu");
response.addCookie(cookie1);
的JavaScript在JSP文件:
alert("cookie------------"+document.cookie);
- 有什麼我做錯了什麼?
- 如果你知道如何,這將是非常有益的。
感謝您的回答。 – zjzhangkui 2013-04-27 09:01:25
你的意思是通過在上下文中設置useHttpOnly =「true」來爲JSESSIONID工作,在後端Java代碼中設置的cookie仍然可以通過javascript獲取,對吧?如果是這樣,它是否可以防止XSS攻擊?你說得對,如果在java代碼中對cookie設置了setSecure(true),那麼這個cookie不能被javascript獲取。 – zjzhangkui 2013-04-27 09:26:17
'setSecure'用於'https:'。使用[Cookie.setHttpOnly(true)](http://docs.oracle.com/javaee/7/api/javax/servlet/http/Cookie.html)。 – 2013-04-27 20:38:10