JAVA年度安全 第一周 防御Session Fixation
来源:互联网 发布:license.lic 破解软件 编辑:程序博客网 时间:2024/05/14 16:11
http://www.jtmelton.com/2012/01/02/year-of-security-for-java-week-1-session-fixation-prevention
这是神马东西,我为啥要关心?
Session Fixation,常用的定义:session劫持的一个变种。最常见的基本流程是:
1、攻击者从应用中获取一个可用的session id
2、攻击者强迫受骗者使用这个session id
3、攻击者通过受骗者正在使用的session id获取受骗者账户的访问权限。
第2步诱使受骗者使用这个session id才是攻击的精髓。常见的做法仅仅是给受骗者发送一个带有某个网站session id的url链接。
很明显,一个用户能够控制其他用户的账户是一个严重的问题,那么。。。
我应该做什么?
幸运的是解决这个问题通常很简单。简单的建议:
当用户成功登陆后,废弃用户的session(译者注:网站在用户登陆后,废弃用户登录前使用的session)
解决Session Fixation的常见流程如下:
1、用户输入正确的凭证
2、系统成功认证用户信息
3、当前session中的所有需要被保留的信息都存放到一个临时位置
4、废弃当前session(HttpSession.invalidate())
5、创建新的session(new session ID)
6、将临时位置中的信息放入新session中
7、用户使用新的session id成功登陆访问页面
在ESAPI工程中有一段有用的代码来展示如何改变session标示。
http://code.google.com/p/owasp-esapi-java/source/browse/trunk/src/main/java/org/owasp/esapi/reference/DefaultHTTPUtilities.java(参考changeSessionIdentifier方法)
还可以采用其他的方法来提供更多的保障来避免这种情况。下面列出我的一些想法:
1、检查用户是否试图使用一个废弃的session id登陆(需要维护一个LRU cache来保存废弃的session id列表)
2、检查用户是否试图使用一个已经在其他ip上使用过的session id(需要使用map来维护这些数据)
3、如果发现一些明显的恶意行为,考虑使用类似AppSensor(作者的广告)的工具来保护你的应用,并且能够让你知道这些攻击。
正如你所知,session fixation是一个严重问题,但是有很简单的解决方案。如果可能的话,你最好的措施是引入一些“企业级”框架中(例如ESAPI)的合适解决方案,这样就能够在你的所有应用中通用这个方案。
参考
———–
https://www.owasp.org/index.php/Session_fixation
http://www.acros.si/papers/session_fixation.pdf
http://cwe.mitre.org/data/definitions/384.html
http://projects.webappsec.org/w/page/13246960/Session%20Fixation
- JAVA年度安全 第一周 防御Session Fixation
- JAVA年度安全 第一周 防御Session Fixation
- JAVA年度安全 第四周 SESSION COOKIE HTTPONLY 标识
- WEB安全:session fixation的防范
- Session Fixation
- Session Fixation
- 关于Session Fixation
- Session Fixation 攻防实战
- session fixation攻击
- JAVA年度安全 第三周 SESSION COOKIE SECURE 标识
- [zhuan]Session Fixation 攻防实战
- PHP安全编程:session劫持的防御
- Session固定攻擊(Session Fixation)
- PHP安全编程:session劫持的防御session 数据暴露
- 固定SessionID 漏洞 攻击(session fixation attacks)
- Session攻击手段(会话劫持/固定)及其安全防御措施
- PHP安全编程之session劫持的防御
- Session攻击手段(会话劫持/固定)及其安全防御措施
- POJ-2488-A Knight's Journey
- PCI总线的信号定义
- 【排序】局部冒泡排序
- s3c6410裸机程序,可打印串口和点亮LED
- Dmidecode
- JAVA年度安全 第一周 防御Session Fixation
- 要养成良好的书写Sql的习惯 . .
- 用Jquery获取iframe父页面元素
- Snmp 协议
- 图论-最短路径问题
- poj 2723(2-sat+二分答案)
- 禁用右键、文本选择功能、复制按键
- 我的java之路之java的访问权限控制
- JAVA年度安全 第二周 WEB.XML中的错误处理