php中session放cookie优缺点分析
现在有很多朋友在做网站安全验证时会把session存放在cookie中,这样我们就对一些数据进行加密处理,那么他们这样做的优缺点是什么及有那些安全问题呢?下面我们一起来对比一下.
这篇文章不是讨论session,也不是cookie,现在很多网站都是讲session放cookie中,叫做cookie based session,下面就来讨论下cookie based session的优缺点.
优点:
1.减轻服务器压力,如PHP session默认是文件存储格式的,这样就会较少磁盘压力,不会给磁盘造成较多的碎片.
2.你在做集群的时候,是不是要做session同步的问题,cookie based session后就免去了.
缺点:
1.同一个用户,可能在多个地方登录,你也无从判断谁是真实有效用户.
2.session记录在cookie放本地,可能被hacer获取,通过anehta可以将cookie持久化,使登录状态永久有效,当然你可以再记录cookie的时候记录时间戳,在服务器端验证有效期.
个人建议:
从安全性上来说只要处理得当,session和cookie相差无几,另外还要考虑cookie的存储量,一些重要信息如用户信息或权限信息最好不要放cookie.
session和cookie谁更安全:
就个人而言,我觉得session更安全一点,我以下几点看法.
1,如果session和cookie一样安全的话,二者就没有并要同时存在了,只要cookie就好了,让客户端来分提服务器的负担,并且对于用户来说又是透明的,何乐而不为呢.
2,session的sessionID是放在cookie里,要想功破session的话,第一要功破cookie,功破cookie后,你要得到 sessionID,sessionID是要有人登录,或者启动session_start才会有,你不知道什么时候会有人登录,第二,sessionID是加密的,第二次session_start的时候,前一次的sessionID就没有用了,session过期时sessionid也会失效,想在短时间内功破加了密的 sessionID很难,session是针对某一次通信而言,会话结束session也就随着消失了,而真正的cookie存在于客户端硬盘上的一个文本文件,谁安全很显然了.