zoukankan      html  css  js  c++  java
  • cookie的生命周期,cookie何时创建,何时销毁

    Cookie概念

        在浏览某些网站时,这些网站会把一些数据存在客户端,用于使用网站等跟踪用户,实现用户自定义功能

    Cookie会在客户端存活多久呢?这就是Cookie的生命了。默认情况下,Cookie只在浏览器的内存中存活,也就是说,如果不设置 过期时间,则表示这个 Cookie生命周期为浏览器会话期间,当你关闭浏览器后,Cookie就会消失!

    可以使用Cookie#setMaxAge(int expiry)来设置Cookie的存活时间。参数expiry表示Cookie存活的秒数。

        cookie.setMaxAge(60*60):表示cookie对象可存活1小时。就算关闭浏览器,就算重启客户端电脑,cookie也会存活1小时。因为当maxAge大于0时,浏览器不仅会把cookie保存在浏览器内存中,还会把cookie保存到硬盘上。

        cookie.setMaxAge(-1)cookiemaxAge属性的默认值就是-1(其实只要是负数都是一个意思),表示只在浏览器内存中存活。一旦关闭浏览器窗口,那么cookie就会消失。

    cookie.setMaxAge(0)cookie被作废!表示cookie即不在内存中存活,也不在硬盘上存活,这样的cookie设置只有一个目的,那就是覆盖客户端原来的这个cookie,使其作废。

    存储在硬盘上的Cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的Cookie,不同的浏览器有不同的处理方式。

    原理:

    如果浏览器使用的是 cookie,那么所有的数据都保存在浏览器端,

    比如你登录以后,服务器设置了 cookie用户名(username),那么,当你再次请求服务器的时候浏览器会将username一块发送给服务器,这些变量有一定的特殊标记。

    服务器会解释为 cookie变量。

    所以只要不关闭浏览器,那么 cookie变量便一直是有效的,所以能够保证长时间不掉线。

    如果你能够截获某个用户的 cookie变量,然后伪造一个数据包发送过去,那么服务器还是认为你是合法的。所以,使用 cookie被攻击的可能性比较大。

    如果设置了的有效时间,那么它会将 cookie保存在客户端的硬盘上,下次再访问该网站的时候,浏览器先检查有没有 cookie,如果有的话,就读取该 cookie,然后发送给服务器。

    如果你在机器上面保存了某个论坛 cookie,有效期是一年,如果有人入侵你的机器,将你的 cookie拷走,然后放在他的浏览器的目录下面,那么他登录该网站的时候就是用你的的身份登录的。

    所以 cookie是可以伪造的。

    当然,伪造的时候需要主意,直接copy cookie文件到 cookie目录,浏览器是不认的

  • 相关阅读:
    [BZOJ]2132: 圈地计划 最小割
    从最近MySQL的优化工作想到的
    Linux基本操作 9----- 认识与学习bash
    多路径配置vlome group共享存储,VG的更新。
    两位数乘法的速算方法(一)
    请对他有足够的重视——设计!
    ASP.NET中配置应用程序
    flex开发小技巧集锦
    刚制作完的SAP Sybase ASE15.7 [Sybase Central] 客户端
    Static 关键字的 5 种用法,你会几种?
  • 原文地址:https://www.cnblogs.com/KingAndPig/p/13963652.html
Copyright © 2011-2022 走看看