cookie与session性能分析与安全性分析及几个小问题

来源:互联网 发布:sop8单片机介绍 编辑:程序博客网 时间:2024/06/06 12:37
      cookie与session的作用主要用来记录用户的登陆信息等。这些信息有些肯定是涉及到用户帐号的安全性问题, 同时由于二者的原理不一样,同时存在着性能问题。

             首先说二者的性能,cookie存在客户端,而session是在服务器端保存着的,以文件或者数据库的形式。当一个网站的用户量非常大时,我想众多的网站架构师是不会采用session的,因为这需要耗费服务器非常大的资源,导致服务器性能很低。(但不排除存在有效的解决办法)。cookie存在客户端,使用cookie的话就把资源耗费分散到各个地方,降低了网站成本。(虽然说有的用户禁用cookie,但这是少数,设计时可以忽略掉),我选用cookie。

            关于选定cookie后的安全问题,我有自己的解决办法,在用户登陆的时候比如要存一个uid(并不是唯一选择,可以是username),用来记录用户的登陆信息,这时在 setcookie时,可以存两个关于uid的cookie,一个是 原始 的 uid,直接存,另一个 secureuid 的值(value),将 uid的值使用某种方法加密,比如加密为md5($uid . 'admin'),每次用户要进行需要权限的操作时,对 uid 是否为 null 并且 cookie uid 加密后的值是否等于secureuid的值。 为什么要这样验证: a .验证为空,看用户是否具有本网站的cookie信息,如果有的话, b. 需要继续判断, 因为 cookie可以仿造, 这种攻击方法很常见,md5加密的信息,我想用户是很难仿造出来的。这很重要。

             另外:完了说明: 一个域名在用户的浏览器保存的cookie是有限的,最多为5个(一般情况),有的是3个。一个浏览器保存的cookie个数是100个(一般情况),少的为60个