Java EE 6.0 的Cookie类已经有设置HttpOnly的方法

2014-11-24 09:46:01 · 作者: · 浏览: 1
一般的Cookie都是从document对象中获得的,现在 浏览器在设置Cookie的时候一般都接受一个叫做HttpOnly的参数,跟domain等其他参数一样,一旦这个HttpOnly被设置,你在浏览器的document对象中就看不到Cookie了,而浏览器在浏览的时候不受任何影响,因为Cookie会被放在浏览器头中发送出去(包括ajax的时 候),应用程序也一般不会在js里操作这些敏感Cookie的,对于一些敏感的Cookie我们采用HttpOnly,对于一些需要在应用程序中用js操作的cookie我们就不予设置,这样就保障了Cookie信息的安全也保证了应用。
如果你正在使用的是兼容Java EE 6.0 的容器,如Tomcat 7,那么Cookie 类已经有了setHttpOnly 的方法来使用HttpOnly 的Cookie 属性了。
1 cookie.setHttpOnly(true);
设置完后生成的Cookie 就会在最后多了一个;HttpOnly
另外使用Session 的话jsessionid 这个Cookie 可通过在Context 中使用useHttpOnly 配置来启用HttpOnly,例如:
1 2 reloadable="false" useHttpOnly="true"/>
也可以在web.xml 配置如下:
1
2
3 true
4

5
对于.NET 2.0 应用可以在web.config 的system.web/httpCookies 元素使用如下配置来启用HttpOnly
1
而程序的处理方式如下:
C#:
1 HttpCookie myCookie = new HttpCookie("myCookie");
2 myCookie.HttpOnly = true;
3 Response.AppendCookie(myCookie);
VB.NET:
1 Dim myCookie As HttpCookie = new HttpCookie("myCookie")
2 myCookie.HttpOnly = True
3 Response.AppendCookie(myCookie)
.NET 1.1 只能手工处理:
1 Response.Cookies[cookie].Path += ";HttpOnly";
PHP 从5.2.0 版本开始就支持HttpOnly
1 session.cookie_httponly = True