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

标签: java 安全 session | 发表时间:2015-12-29 18:05 | 作者:天亮了说晚安
出处:http://www.iteye.com
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

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [java 安全 session] 推荐:

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

- - Web前端 - ITeye博客
Session cookies (或者包含JSSESSIONID的cookie)是指用来管理web应用的session会话的cookies.这些cookie中保存特定使用者的session ID标识,而且相同的session ID以及session生命周期内相关的数据也在服务器端保存. 在web应用中最常用的session管理方式是通过每次请求的时候将cookies传送到服务器端来进行session识别.

Cookie/Session的机制与安全

- - Harttle Land
Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道. 本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题. 因为HTTP协议是无状态的,即每次用户请求到达服务器时,HTTP服务器并不知道这个用户是谁、是否登录过等.

[Java][web]利用Spring随时随地获得Request和Session

- - CSDN博客推荐文章
利用Spring随时随地获得Request和Session. 在web.xml中添加  . 1、方法一:通过代码实现. 2、方法二:通过注解实现:. 三、关于RequestContextListener的背景知识:. 基于LocalThread将HTTP request对象绑定到为该请求提供服务的线程上.

[安全科普]你必须了解的session的本质

- - FreeBuf.COM
有一点我们必须承认,大多数web应用程序都离不开session的使用. 这篇文章将会结合php以及http协议来分析如何建立一个安全的会话管理机制. 我们先简单的了解一些http的知识,从而理解该协议的无状态特性. 然后,学习一些关于cookie的基本操作. 最后,我会一步步阐述如何使用一些简单,高效的方法来提高你的php应用程序的安全性以及稳定行.

session fixation攻击

- - 互联网 - ITeye博客
什么是session fixation攻击. Session fixation有人翻译成“Session完成攻击”,实际上fixation是确知和确定的意思,在此是指Web服务的会话ID是确知不变的,攻击者为受害着确定一个会话ID从而达到攻击的目的. 在维基百科中专门有个词条 http://en.wikipedia.org/wiki/Session_fixation,在此引述其攻击情景,防范策略参考原文.

Zookeeper的Session

- - 行业应用 - ITeye博客
介绍一下基于zookeeper的一些API的编程. 在此之前,我们先来熟悉一下相关知识:. Zookeeper的Session:. (1)客户端和server间采用长连接. (2)连接建立后,server产生session ID(64位)返还给客户端. (3)客户端定期发送ping包来检查和保持和server的连接.

JAVA安全之JAVA服务器安全漫谈

- - WooYun知识库
本文主要针对JAVA服务器常见的危害较大的安全问题的成因与防护进行分析,主要为了交流和抛砖引玉. 以下为任意文件下载漏洞的示例. DownloadAction为用于下载文件的servlet. 在对应的download.DownloadAction类中,将HTTP请求中的filename参数作为待下载的文件名,从web应用根目录的download目录读取文件内容并返回,代码如下.

Session机制解析

- - ITeye博客
虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术. 本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答. 二、HTTP协议与状态保持.

session和cookie详解

- - ITeye博客
摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一 技术. 本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答. 二、HTTP协议与状态保持.

nginx + memcached session 同步

- - 企业架构 - ITeye博客
squid 缓存疑问 问题归纳:. 1 squid 缓存的数据,何时过期,如何判断缓存的数据已经过期,如何把最新的数据缓入squid 并且替换掉旧的内容. 2 如何判断数据是否应该被缓存. 3 校验失败时,是否给出缓存中旧的内容. 上面的几个问题  都可以通过 squid中的 refresh_pattern 配置项 找到答案.