• POPTEST老李分享session,cookie的安全性以及区别 1


    POPTEST老李分享session,cookie的安全性以及区别

     

    poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。

    一,为什么session,cookie经常会有人提到

    做web开发的人基本上都会用session和cookie,但是仅仅只是会用,并不知道session和cookie的真正的工作原理,都只是凭着感觉来猜测。web开发者只要利用它们来完成工作就行了,所以每个人的理解基本都会有大同小异,我想这就是session,cookie经常会被讨论的原因。本文也是根据个人经验,以及个人所学,对session,cookie的一些看法,纯属个人见解,希望得到大家的更正和建议。


    二,什么cookie

    cookie分为二种

    1,以文件方式存在硬盘空间上的长期性的cookie

    2,停留在浏览器所占内存中的临时性的cookie

    浏览网站时,你会经常发现网站登录的地方,会有提示,问你是不是要记住自己的登录状态,像这种情况,登录时填写的一些信息会被以文件的方式存放在客户端的硬盘上。

    当用户登录后,session会在cookie端产生一个session_id,这个session_id是存于浏览器所占用的内存当中。当你关闭浏览器后,session_id也要消失了。

    cookie采用的是在客户端保持状态的方案,它是客户端的会话状态的一种储存机制。它是服务器在本地机器上存储的小段文本或者是内存中的一段数据,并随每一个请求发送至同一个服务器。IETF RFC 2965 HTTP State Management Mechanism 是通用cookie规范。网络服务器用HTTP头信息向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,或者本地内存中数据,它会自动将同一服务器的任何请求缚上这些cookies,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制借助于cookie机制来达到保存标识的目的,这样就可以解决HTTP协议无状态的缺陷。

    三,什么是session

    session是一种服务器端的信息管理机制,它把这些文件信息以文件的形势存放在服务器的硬盘空间上,这种情况是默认的,可以用memcache把这种数据放到内存里面。请参考web集群时利用memcache来同步session

    当客户端向服务器发出请求时,要求服务器端产生一个session时,服务器端会先检查一下,客户端的cookie里面有没有session_id,是否已经过期。如果有这样的session_id的话,服务器端会根据cookie里的session_id把服务器的session检索出来。如果没有这样的session_id的话,服务器端会重新建立一个。PHPSESSID是一串加了密的字符串,它的生成按照一定的规则来执行。同一客户端启动二次session_start的话,session_id是不一样的。

    Host *****************.com
    User-Agent Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6
    Accept text/css,*/*;q=0.1
    Accept-Language zh-cn,zh;q=0.5
    Accept-Encoding gzip,deflate
    Accept-Charset UTF-8,*
    Keep-Alive 115
    Connection keep-alive
    Referer http://***************.com/
    Cookie BX=7f34kbl5d3m3g&b=3&s=9t; AWSUSER_ID=awsuser_id1267685109158r8091; PHPSESSID=us1o22h4iveo4uni3iksabreh4
    If-Modified-Since Tue, 29 Jun 2010 07:55:38 GMT

    上面是一次请求的头信息。

    session产生的session_id放在cookie里面,如果用户把cookie禁止掉,是不是session也不能用了呢?禁止掉cookie后,session当然可以用,不过通过其他的方式来获得这个sessionid,比如,可以根在url的后面,或者以表单的形势提交到服务器端。从而使服务器端了解客户端的状态。

  • 相关阅读:
    欢迎访问我的快站clone-5483e9466f404.kuaizhan.com
    SWFUpload 2.5.0版 官方说明文档 中文翻译版
    http://demo.jb51.net/js/2011/artDialog/_doc/iframeTop.html
    使用jquery-qrcode生成二维码
    主流浏览器CSS3和HTML5兼容性详细清单
    js获取浏览器基本信息:document.body.clientWidth/clientHeight/scrollWidth/scrollTop。
    document.documentElement和document.body的区别
    CSS 的优先级机制
    css三列布局之双飞翼pk圣杯
    响应式web设计(一)
  • 原文地址:https://www.cnblogs.com/poptest/p/5210672.html
Copyright © 2020-2023  润新知