用户登录后,权限信息应该保存在哪呢?
保存在session中太占资源了
保存在cookie中又不安全
我从一本书上看到一种方法,他是这样来实现的,首先在cookie中保存一个hash字串,这个字串由用户组信息,用户密码,用户权限经过加密组成,然后在一个在线列表中再保存这个hash字串,经过同样的方法加密。判断的时候首先判断cookie信息和数据表中的信息是否相等,如果相等就采用,如果不相等就清楚cookie,注销用户登录。
我觉得这样做比较保险,但是还是有点麻烦了。因为要存取数据库,那每判断一次用户权限都要存取一次
DZ中是把用户权限写成一个PHP文件,判断的时候包含对应的用户组权限缓存文件,然后直接用变量进行判断,那么DZ把用户组ID保存在哪了?看了半天也搞懂。
希望达人不吝赐教

解决方案 »

  1.   

    那就是在cookie的基礎上做多一層保護而已了,如果不是很特別應該也沒有必要了。
      

  2.   

    你的站点不是那么敏感的话,就放在session里好了……
      

  3.   

    我觉得安全在哪都是必要的,如果直接使用COOKIE那么很容易就会被人修改,这样他就可以登陆后台了,也就可以任意蹂躏你的站点
    大家有没有比较好的办法,站点信息不敏感,要了以后没有商业作用,只是不想被人轻易攻击,轻易进入后台,但是速度能够快一点。
      

  4.   

    保存在SESSION 里边应该没有说太耗费资源的说法吧,登录的时候将权限信息写入SESSION,其他时候一般只是读而已,不会耗费特别多的资源,耗费资源是在生成权限树这个过程上把,这个可以用缓存吧,每次修改权限后更新缓存内容就是了,这个缓存是以文件、数据库、内存 方式保存都可以,根据你具体的情况选择一种就是了。 比如DZ是按照用户组以文件形式缓存的。你只需要知道在登录以后在什么地方加载权限树就可以了。
      

  5.   

    楼上说的不错
    我也是打算用缓存保存权限树
    但是我没有自己的主机,虚拟主机只给你提供%4甚至更少的CPU占用率,我想尽量的节省资源,这样网站在进行主要的一些操作
    比如发表,浏览时就能够快一点
      

  6.   

    那就学DZ一样,权限设置后保存为一个PHP文档, 使用的时候include 就可以了,只需要考虑include那个文件就可以了