Tomcat7新特性?cookie HttpOnly的那些事(sessionid获取麻烦了)
来源:互联网 发布:如何设置淘宝客优惠券 编辑:程序博客网 时间:2024/04/30 08:04
原地址:http://skzr-org.iteye.com/blog/975884
环境:
tomcat6和tomcat7,jdk1.6,j2ee应用,一个applet运行在浏览器中,网站有验证机制
现象:
- 成功登录系统后
- tomcat6下:applet可以正常运行;
- tomcat7下:applet运行失败,在加载jar时就失败了
分析:
- 查看applet的java控制台:在tomcat6下请求jar时会自动带上JSESSIONID,而在tomcat7中不会导致通不过验证机制
- 打开wireshark监控通讯,发现,tomcat7下设置cookie为:比tomcat6下多了个HttpOnly
- Set-Cookie: JSESSIONID=B7587AE3765290179B8CE4027545391F; Path=/cems2; HttpOnly
- 看来就是因为这个导致applet获取浏览器的cookie值时,被浏览器拒绝了
解决:
- 设置应用禁止HttpOnly或身份标识Cookie创建时创建禁止Cookie:useHttpOnly=false即可
然后安全性自己控制:如cookie加密等- <?xml version="1.0" encoding="UTF-8" ?>
- <Context path="/${tomcat.deployName}" docBase="${basedir}/WebRoot" useHttpOnly="false"/>
- 数字签名:不可行,注意applet plugin jvm初始化时,就会去网站检查jar,实际上这个时候还只是jvm plugin load class——我们无法控制,所以也无法动作
- jar的访问不验证,签名jar,然后在applet启动时,强制读取cookie(通过签名了),存储cookie到applet环境中——被证明依然不可行,官方好像说jdk1.6u16就解决了这个问题,不过貌似我这里不行ubuntu 10.10 ff和chrome都测试了,试想如果真的可以,那么任何plugin也可以读取,安全性又回到了httponly=false的情形了。
- 主动发送cookie,通过在页面设置cookie做为paramters传递给plugin,然后所有访问服务器资源的连接都主动设置此cookie即可,经过验证是可行的。
- 权衡1和4,还是采用方法1最快最容易实施
- 或启用useHttpOnly=true然后,用户登录后设置cookie[appletkey][HttpOnly=false],所有applet的访问验证都通过appletkey cookie值进行.
0 0
- Tomcat7新特性?cookie HttpOnly的那些事(sessionid获取麻烦了)
- 关于属性HTTPONLY的COOKIE的获取
- VB通过webbrowser获取httponly的cookie
- 如何获取HttpOnly Cookie
- 如何获取HttpOnly Cookie
- nginx+tomcat7+memcached每个tomcat返回新的sessionid
- cookie的httponly属性
- COOKIE的HttpOnly属性
- cookie 内的sessionid
- 关于cookie的httponly属性
- httpwebreqeust读取httponly的cookie
- 设置cookie的httponly属性
- TOMCAT7关于支持SERVLET3的新特性
- TOMCAT7关于支持SERVLET3的新特性
- 在php中设置sessionid的httponly属性
- Tomcat7新特性
- Tomcat7新特性
- Tomcat7新特性
- 怎么在数据库表里面自动插入日期字段
- 原创文章3
- C++11 新特性<一>
- python打印列表中的内容,而不是unicode字符
- 枚举类型
- Tomcat7新特性?cookie HttpOnly的那些事(sessionid获取麻烦了)
- 创建一个有序链表
- 已知一个函数rand7()能够生成1-7的随机数,请给出一个函数rand10(),该函数能够生成1-10的随机数。
- 公务车订购国产化 多款车型入采购名单
- POJ 1948 Triangular Pastures (用所有的线段组成最大的三角形) DP || 携程员工运动会场地问题
- 十种常用排序算法浅析 附C++实现
- UINavigationController的横屏问题
- android JNI : ReferenceTable overflow
- 谈谈EJB是如何发布Web Service的