HttpOnly标志无法在tomcat6.0.36上运行

时间:2013-04-26 06:38:35

标签: httponly

我尝试了很多方法来使用httponly标志来阻止XSS攻击,但都失败了。

常用方法是在context.xml中设置使用HttpOnly = true

对于测试结果:在java代码中设置两个测试参数在cookie和前面的jsp文件中包含javascript以警告document.cookie,在java代码中设置的两个测试参数是get并在警报中显示。

Java代码:

 Cookie cookie = new Cookie("httponlytest","testsss");  
 response.addCookie(cookie); 
 Cookie cookie1 = new Cookie("testhttponly","successfu"); 
 response.addCookie(cookie1); 

jsp文件中的javascript:

alert("cookie------------"+document.cookie);
  1. 我做错了什么?
  2. 如果你知道怎么做,那将非常有帮助。

2 个答案:

答案 0 :(得分:0)

对于其他不了解HttpOnly的人:

HttpOnly = true 是一个相对较新的属性,可让浏览器无法访问JavaScript。

因此,它是一种仅限浏览器的安全性(XSS)技术,可防止访问JSESSION_ID(劫持java会话)等。

因此,您始终可以在Cookie本身中设置HttpOnly属性。对于Java会话ID,我现在认为它是默认的,至少它应该是。

<Context useHttpOnly="true">

这似乎仅适用于JSESSIONID。我刚刚在SO中找到this

答案 1 :(得分:0)

最近我正在处理 http-only = true Cookie。在我的研究中,我发现Mozilla和Chrome不允许Java applet使用 http-only = true cookie。我在访问JsessionidSSO cookie时遇到了问题。在我研究JAVA的bug时,我发现了this bug 虽然在IE中读取cookie没有问题,因为IE已提供InternetGetCookieEx() API来访问仅限http 的Cookie,并添加了只有IE8及以上版本的标记INTERNET_COOKIE_HTTPONLY。因此,访问仅限http的cookie的问题仍未解决,因为java提出了java 7 update 40中的修复,而当前版本是java 7 update21。