Java EE 6.0 的Cookie類已經有設置HttpOnly的方法 – JAVA編程語言程序開發技術文章

一般的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     <Context path="" docBase="D:/WORKDIR/oschina/webapp"
2         reloadable="false" useHttpOnly="true"/>
也可以在web.xml 配置如下:
1     <session-config>
2     <cookie-config>
3       <http-only>true</http-only>
4     </cookie-config>
5     <session-config>
對於.NET 2.0 應用可以在web.config 的system.web/httpCookies 元素使用如下配置來啟用HttpOnly
1     <httpCookies httpOnlyCookies="true" …>
而程序的處理方式如下:
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
 

發佈留言