資安JAVA(四):Session Cookie HTTPOnly Flag

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 4 – SESSION COOKIE HTTPONLY FLAG
作者:John Melton
內文:
What is it and why do I care?

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

HttpOnly flag 作用是預防攻擊者透過 XSS 弱點獲得 session cookie。一旦 XSS 攻擊者成功,攻擊者便可以挾持受害者的 session 以合法身分登入。HttpOnly flag 對於這種攻擊十分有效。
What should I do about it?

應對方法很單純。你只須將 HttpOnly flag 加入到你的 session cookie(全部的 cookie 更好)。

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

Cookie: jsessionid=AS348AF929FK219CKA9FK3B79870H;

加入 HttpOnly flag 之後:

Cookie: jsessionid=AS348AF929FK219CKA9FK3B79870H; HttpOnly;

如果你有閱讀 上一篇 文章, 以下是加入 secure flag 的範例:

Cookie: jsessionid=AS348AF929FK219CKA9FK3B79870H; HttpOnly; secure;

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

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

很簡單對吧 !每一個開發者都應將這工作列入To-do list。

參考資料
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/HttpOnly
———–———–
資安Java: 上一篇 || 下一篇
———–———–

留言

這個網誌中的熱門文章

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

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