程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> 探秘Servlet 3.0中的Web安全改進

探秘Servlet 3.0中的Web安全改進

編輯:J2EE

【51CTO獨家特稿】Servlet 3.0最為最新的Servlet最新標准,其提供了很多新特性,比如異步請求處理、聲明式語法支持等。在這裡我們將考察Servlet 3.0安全方面的增強。

對網站進行跨站攻擊最常用的一個手段就是在網頁中插入惡意的Html和JavaScript代碼。一旦你的網頁被增加這些惡意代碼,那麼就非常容易洩流你的個人信息,比如CookIE。

Cookie作為保留會話狀態的手段,經常被用來保存用戶登錄信息等敏感性數據,但是由於CookIE既可以在服務器端讀取,又可以在客戶端通過腳本讀取,則導致其成為Web應用安全的一個薄弱環節。

在2002年,微軟采用了一種被稱為“HttpOnly Cookies”的技術,來防止惡意讀取Cookie信息。該技術實際並不復雜,只是在CookIE上增加一個額外的屬性,在浏覽器支持的情況下,如果嘗試通過腳本讀取CookIE內容,返回結果將為空。現在大多數服務器和客戶端都采用的是這種技術,當然浏覽對對XMLHttpRequest對象進行了特殊處理。

在Servlet 3.0規范中,Java Servlet開始支持“HttpOnly Cookies”。當使用HttpServletResponse的addCookIE方法,向浏覽器提供Cookie的時候,可以通過Cookie對象的setHttpOnly方法指定CookIE為HttpOnly。例如:

  1. CookIE cooki=new CookIE("user_name","guandeliang");
  2. cooki.setMaxAge(60*60*24*365);
  3. cooki.setPath("/");
  4. cooki.setHttpOnly(true);
  5. response.addCookIE(cooki);

另外,如果希望判斷一個CookIE對象是否是HttpOnly,可以通過調用該對象的isHttpOnly()進行判斷。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved