`
walsece
  • 浏览: 137838 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

使用cookie时经常忽略的一个重要问题

    博客分类:
  • J2EE
阅读更多

注:本文为原创文章,转载时请注明转载地址。

    
cookie经常用来存储客户端小数据量的状态数据,在实际的web开发中经常使用,但是很多人在实际的使用中都会忽略一个cookie重大的缺陷以至该缺陷在程序中引发的bug很难被发现。

     使用cookie的缺陷就是:cookie在每台计算机上总的数量不能超过300个,对于每个服务器(并不是只单独的一个domain)来说最多不能超过20个,每个cookie的大小不能超过4000字节,当然以上的数据只是一个最大值,不同的浏览器可能会更小。

     Cookie的这个缺陷在程序中会引发以下问题:
     Cookie的使用很简单,只要name=value即可,同时每个这种值对就代表一个cookie文件,对于每个服务器来说,如果用来存储cookie的文件超过20个,那么将会导致后面的cookie文件覆盖早期的cookie文件,这除了会导致程序中自定义的状态数据丢失外还会导致session丢失的问题。大家都知道,在大部分的session跟踪中都是通过cookie来实现的,如jsessionid=000000之类的样式,如果滥用cookie使其数目过大将会覆盖掉该session跟踪的信息,那么就会引发session丢失的问题,并且引发的这种问题具有很大的隐蔽性以及不确定性。
     同样如果每个cookie文件的数据过大以至超过4K(可能还会更小)将会自动溢出,同样会导致数据丢失的问题。

     因此在实际开发中尽量将数据压缩,将cookie文件的数量压缩,不要将每个状态数据单独存放在独立的cookie文件中,最好将不同的状态数据通过压缩存放在同一个cookie文件中,举个例子:
     如果在客户端保存用户登录的用户名和密码或者其他信息时,不要用以下方式: id=XXXX,pwd=XXX,最好是存在一个文件中如:user=id-XXX,pwd-XXX

 

6
4
分享到:
评论
2 楼 qq493197363 2008-05-11  
1 楼 qq493197363 2008-05-11  
写的很好啊

相关推荐

    ASP+SQL教材大全

    例如,如果一个用户在一个很长的HTML表单中忽略了回答一个问题,他或她应该不能到下一个页面。这个表单应该重新刷新而先前已做的回答应原封未动。在这章里,你将学习到如何在HTML表格里自动重显这些字段。 ■不通过...

    超级有影响力霸气的Java面试题大全文档

    Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应...

    java 面试题 总结

    Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应...

    [完整][中文][WEB安全测试].(美)霍普.扫描版.pdf

     在你对Web应用所执行的测试中,安全测试可能是最重要的,但它却常常是最容易被忽略的。本书中的秘诀演示了开发和测试人员在进行单元测试、回归测试或探索性测试的同时,如何去检查最常见的Web安全问题。与即兴的...

    asp.net知识库

    一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和方法的学习小结 C#中结构与类的区别 C#中 const 和 readonly 的区别 利用自定义属性,定义枚举值的详细文本 Web标准和ASP...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与用户交互的组件 SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。...

    C#编程经验技巧宝典

    122 <br>0205 如何使用正则表达式验证两位小数 122 <br>0206 如何使用正则表达式验证一年的12个月份 123 <br>0207 如何使用正则表达式验证一个月的31天 123 <br>0208 如何使用正则表达式验证数字...

    vc++ 应用源码包_1

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...

    vc++ 应用源码包_6

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...

    vc++ 应用源码包_5

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...

    vc++ 应用源码包_2

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...

    vc++ 应用源码包_3

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...

    KB SSL执行者「KB SSL Enforcer」-crx插件

    第一个不安全的请求可能会以明文形式发送cookie,这将使使用Firesheep之类的工具的任何人都有机会在该站点上使用您的帐户。但这只有在他们在第一个请求期间捕获到它并且包含敏感信息(例如您登录的会话)的情况下才...

    vc++ 开发实例源码包

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 FreeBird2011Dlg.h 主对话框类头文件 MultiGroup.h 多播组类头文件 UserLink.h 用户链表类头文件 ListenSocket.h 侦听接口...

    Policy Highlights: Focus on Vital Keywords-crx插件

    -隐私政策-服务条款-Cookie政策-披露政策-免责声明政策-行为准则也可与许多页面配合使用,例如:-法律页面-合同签署页面-确认页面-协议页面- GDPR页面当您浏览网络并访问与政策相关的页面时,关键字将自动突出显示。...

Global site tag (gtag.js) - Google Analytics