cookie是加密过的,会和数据库中的加密栏位对比,所以cookie欺骗应该是不行的
但如果被盗取了,这对比就是OK的,那该怎么办?
我想用IP再对比一下不知道是否可行,就是真实用户登录的IP也保存在数据库中
请大家指教

解决方案 »

  1.   

    没有绝对的,理论上只要它能取得,就是可以进入的另外,你也不可能每次都上数据库验证密钥,那用户多话数据库了受不了,这和用session差别不大了用IP对比是一种方法,实际上是一种解决机制既然用cookie,为的就是高效,就是在高效和安全之间找一平衡点你这个基础上,你设计一种验证机制即可
      

  2.   

    验证IP地址的话,如果用户是ADSL或其他动态IP的拨号网络,那他重新连一下也不能通过验证了。客户端数据泄漏的情况很难通过服务器或者验证机制来解决,除非可以得到一个确切的不可变的客户端数据
      

  3.   

    1.验证IP地址不现实,很少有上网用户使用固定的IP地址
    2.cookie本身就是公开的信息,不可以保存敏感信息,这一点在设计之初就应该考虑进去。
     lz描述的情况,目前比较流行的解决方式是限定cookie的有效时间。过期了,就必须重新登录。
      

  4.   


    针对于动态IP,那可否绑定其MAC地址呢 ??
      

  5.   

    可以,重要的操作就和数据库里面用户登录的IP比较一下。如果IP变动要求再次登录以保安全。
      

  6.   

    过期时间一般都一个星期,因为是企业用,有些用户电脑中毒,会导至cookie外泄,如果有心人得到cookie的话,那就有点惨了
    cookie的公开是指对某一台电脑公开,又不是对所有电脑公开另外,你们难道都不用cookie保存登录状态吗?
      

  7.   

    企业应用不应该用cookies保存登录状态吧,这样不太严谨,万一泄漏了影响很大。
      

  8.   

    用cookie主要是为了方便,就算用session也是要将ID放在cookie中,如果放在URL后,有可能会被用户误截图传给别人
      

  9.   


    楼主的想法也应该是可行的,不过没有决对的安全 ...
    假如用户在另外一个地方,用另一个IP登录呢, 然后 他回家,原来在电脑上的cookie是不是就不能用了??还是用 session 吧
      

  10.   

    这样问好了,用session,如果session_id被盗取,该怎么办?顺便加100分
      

  11.   

    session_id是浏览器内存的,默认生命周期为浏览器生命周期
    即使用被盗,如果你用另一个浏览器,则会自动生成一个新的session_id
    所以被盗可能为0
    也就是说,如果在同一机换一浏览器,或在不同机用同一浏览器,session_id自动分配新的
      

  12.   


    session_id是存在有效期的,而且是乱数生成,基本不可能被推测出来。
    PHP默认下,session_id虽然被保存在cookie,但是,当网页被关闭之后,session_id也会消失,这是其一,
    其二,服务器上的session是存在有效期的,超过一段时间没有访问,就算得到原来的session_id也是无效的。如果lz需要开发的网站,真的对安全那么较真,可以设定让session_id在请求URI中传送,不保存到cookie就是了。
    再就是缩小session有效时间和HTTPS通信,可以万无一失的使用session。在N多年前,Session的实现问题的确是比较热门的话题,
    但是现在,HTTP协议下已经总结出了比较完善的session管理方法,
    Zend引擎做了很好的支持,lz不需要在这上面钻牛角尖。
      

  13.   

    用session基本上是安全的,但大流量可能会有性能问题
    用cookie可以解决一些性能问题,但安全性是相对的
    可以采用一些机制来解决:比如:动态cookie,动态密钥,加密解密
    cookie绑定user_agent,ip或其他之类的机制,或在后台动态增加验证机制,来提高安全性没有绝对安全的机制,只有相对安全的机制
      

  14.   

    我明白了
    如果像fxs_2008所说:换个机子或浏览器sessionid会重新分配的话,那就算被盗取了也没关系,这个我要去找一下不是我要钻牛角尖,心里总是觉得不踏实
    1.保存在cookie中的session_id就不说了,我们公司中有cookie被盗的例子,虽然服务器的session会自动消失,但半小时对攻击者来说是够了
    2.放在URL后的session_id就更不要说了,用户直接截图传给别人(当然不是故意的,用户大多没有安全意识)所以我才问被盗取了怎么办,而不是防盗总之,我是知道了,不可能绝对安全,只是在安全与方便之间找个平衡点。谢了
      

  15.   

    纠正一下,
    sessionid是服务器管理的,跟浏览器无关。
      

  16.   

     用 session  然后  就尽量 在 php.ini里把 session 的时间设 短一点 ...然后 还可以做个 用户 多少时间未操作,也 自动注销掉 session