当前位置:编程问答 > JAVA >

JAVA年度安全 第四周 SESSION COOKIE HTTPONLY 标识

http://www.jtmelton.com/2012/01/25/year-of-security-for-java-week-4-session-cookie-httponly-flag/
 
What is it and why do I care?
Session cookies (或者包含JSSESSIONID的cookie)是指用来管理web应用的session会话的cookies.这些cookie中保存特定使用者的session ID标识,而且相同的session ID以及session生命周期内相关的数据也在服务器端保存。在web应用中最常用的session管理方式是通过每次请求的时候将cookies传送到服务器端来进行session识别。
 
HttpOnly标识是一个可选的、避免利用XSS(Cross-Site Scripting)来获取session cookie的标识。XSS攻击最常见一个的目标是通过获取的session cookie来劫持受害者的session;使用HttpOnly标识是一种很有用的保护机制。
 
 
 \

 
what should I do about it ?
解决方案很简单。只需要在session cookie上添加HttpOnly标识就行了(最好是所有的cookie)。
 
下面是一个没有添加HttpOnly标识的session cookie:
 
Cookie: jsessionid=AS348AF929FK219CKA9FK3B79870H;
 
添加HttpOnlyFlag标识之后:
 
Cookie: jsessionid=AS348AF929FK219CKA9FK3B79870H; HttpOnly;
 
如果你看过上周的文章,添加了secure和HttpOnly标识的cookie:
 
Cookie: jsessionid=AS348AF929FK219CKA9FK3B79870H; HttpOnly; secure;
 
很简单。你可以人工设置这些参数,如果你在Servlet3或者更新的环境中开发,只需要在web.xml简单的配置就能实现这种效果。你要在web.xml中添加如下片段:
 
<session-config>
 
  <cookie-config>
 
    <http-only>true</http-only>
 
  </cookie-config>
 
</session-config>
 
而且如果使用了secure标识,配置应该如下
 
<session-config>
 
  <cookie-config>
 
    <http-only>true</http-only>
 
    <secure>true</secure>
 
  </cookie-config>
 
</session-config>
 
如上所述,解决这个问题很简单。每个人都应该解决这个问题。
 
References
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
 

 
作者liu251
补充:综合编程 , 安全编程 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,