資安JAVA(三):Session Cookie Secure Flag

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 3 – SESSION COOKIE SECURE FLAG
作者:John Melton
內文:


What is it and why do I care?


Session cookies(或是包含 JSESSIONID 的 cookie)用來管理WEB應用程式的 Session。這些 Cookies 包含特定使用者的 Session ID 的參考值,而同樣的 ID 也放在伺服器端並可識別該使用者其他的 Session 資料。這是最常用的管理方式,因為 cookies 會隨著每次 request 送出。

Secure flag是用來限制 cookies 只能透過 HTTPS 加密傳送。這能保證你的資料不會以明文方式被攻擊者偷取,進行中間人攻擊(man-in-the-middle attack)。Secure flag 並非完整的解決方案,仍是重要的一步。
What should I do about it?


應對方法相當單純。你應該將 Secure flag 加入到你的 Session cookie (如果每一個送到網站的 request 都是 HTTPS 加密更好。)。

以下是沒有 secure flag 的 cookie的範例:

Cookie: jsessionid=AS348AF929FK219CKA9FK3B79870H;

加入 secure flag 之後:

Cookie: jsessionid=AS348AF929FK219CKA9FK3B79870H; secure;

不會很花時間,甚至可以自己動手修改。但如果環境是 Servlet 3.0 或新的版本,以下有個簡單設定。只要修改 web.xml ,他就會幫你完成。很簡單對吧 !

<session-config>
  <cookie-config>
    <secure>true</secure>
  </cookie-config>
</session-config>

參考資料
http://blog.mozilla.com/webappsec/2011/03/31/enabling-browser-security-in-web-applications/
http://michael-coates.blogspot.com/2011/03/enabling-browser-security-in-web.html
https://www.owasp.org/index.php/SecureFlag
———–———–
資安Java: 上一篇 || 下一篇
———–———–

留言

這個網誌中的熱門文章

資安JAVA(八):HTTP強制傳輸安全(HSTS)

以 SharpPcap 實作可收聽封包的 C# 程式

資安JAVA(四):Session Cookie HTTPOnly Flag