潇's profile老肖的地盘PhotosBlogListsMore Tools Help

Blog


    March 05

    (zt)session和cookie的最深刻理解

    很多概念,略微了解那么一点,但是稍微细节的东西,就很模糊了,当然……作为一个挨踢人士来说这是不专业的,从网上转了一篇有关session和cookie的认识,贴在这里,没事可以来这里看看。
    --------------------我是分割线---------------------------------------
    以下是正文哟

    先说session

    对SESSION的争论好象一直没有停止过,不过幺麽能理解SESSION的人应该占90以上。
    但还是讲讲,别嫌老~

    有一些人赞成用SESSION,有一些人不赞成。但这个问题到底要怎么说。不妨听听我的看法

    如果有错误请不要朝丢东西,金条和硬币除外。

    有些人应该知道我是做江湖程序的,而江湖程序做看中的就是效率,但这里不谈设计,而

    从一些比较实际的角度看SESSION。

    首先要先说SESSION是干什么的,SESSION是可以存储针对与某一个用户的IE以及通过其当

    前窗口打开的任何窗口具有针对性的用户信息存储机制。为什么要这样说。看下边

    先研究SESSION是如何启动的,当打开IE以后浏览网站后会发出一个指令请求SESSIONID以

    及对各个类型数据的下载许可,如图片,声音以及FLASH。
    数据实际传输内容:IE到服务器
    GET / HTTP/1.1
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
    Accept-Language0: zh-cn
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
    Host: www.jh521.com
    Connection: Keep-Alive
    服务器会返回一个没有被使用的SESSIONID让IE使用,当时IE就对返回SESSIONID做存储

    并同时返回相关页面的下载数据,如下:服务器到IE
    HTTP/1.1 200 OK
    Server: Microsoft-IIS/5.0
    Date: Sun, 30 Nov 2003 16:41:51 GMT
    Content-Length: 21174..Content-Type: text/html
    Set-Cookie: ASPSESSIONIDCACBBBRT=IBOMFONAOJFEEBHBPIENJFFC; path=/
    Cache-control: private
    然后就是页面HTML代码

    此时这个IE程序(不是客户机)的SESSIONID就为IBOMFONAOJFEEBHBPIENJFFC

    而当IE在访问任何这个站点的ASP程序的时候,就会把IBOMFONAOJFEEBHBPIENJFFC发送

    给服务器,服务器就会知道IBOMFONAOJFEEBHBPIENJFFC是表示你
    而在服务器上设置SESSION("name")="name"
    完全可以看成是
    SESSION("IBOMFONAOJFEEBHBPIENJFFC")("name")="name"
    或者
    SESSION(SESSIONID)("name")="name"
    这样,SESSION就区分开用户了。
    而当服务器反馈这个ID的时候会看这个ID有没有被使用。如果有在换一个
    反正不会让你重复,如果想模拟某人的SESSION的ID来进行欺骗是可以的。不过要获取到

    对方IE传输信号,并且在保证当时这个SESSIONID没有被取消的情况下才可能实施。

    不过要是我有那时间直接通过POST信号找他NAME和PASS了。我可不费这个劲

    想必一些人明白了了SESSIONID到底是如何工作的

    那么就在看看COOKIE,有人说SESSIONID就是COOKIE,按照技术上来讲他们不属于同类

    但是属于一种工作模式,用户和服务器传输私有数据

    当我设置COOKIE的时候,服务器会反馈给IE一个指令。IE通过这个网络指令生成COOKIE并

    存放,在特定的时候会取得这个这个信息如在访问这个站点并且COOKID有效的时候。

    那么为什么要用COOKIE而不用SESSION呢
    看下区别

    有效时间以及存储方式 传输内容
    COOKIE 可设置并在本地保留 明码信息

    SESSION 在IE不关闭并服务器不超时 只有SESSIONID

    当如果想让用户下次登入网站不需要输入用户名或者密码的时候就只能用COOKIE,

    因为他可以保留相当长的时间(在COOKIE记录被删除或者失效日期之前)

    而SESSION就不可以,他不会保留太长时间,而且IE在关闭后就自动清除了SESSIONID记录

    在下次登入的时候会请求新的SESSIONID

    而服务器想通过用户个人变量校验用户的状态的时候,就不能用COOKIE

    如果用设置用户权限是USER。而IE访问的时候就把USER的明码传输到服务器。

    那么如果我通过一定手段,比如直接修改COOKIE记录,把USER修改成ADMIN呢~~

    就麻烦了。

    但存储用户名和密码或者网站的配色方案这样的信息,用COOKIE是最好的


    好,有点累了,在说说这个东西
    Request.ServerVariables("HTTP_REFERER")

    我想有一些人通过这个Request.ServerVariables("HTTP_REFERER")
    来进行一些关键性限制,特别是对付远程提交以及非法侵入。
    那么我就要提醒下服务器取得的HTTP_REFERER信息完全是IE传输给服务器的,可以模拟
    而且难度不大,用不到半个小时就可以用VB做出一个针对HTTP_REFERER入侵程序。

    Comments (1)

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    Jian Sunwrote:
    受教!刚好很有用。。
    Mar. 7

    Trackbacks

    The trackback URL for this entry is:
    http://seanxiaoxiao.spaces.live.com/blog/cns!7677365E5B9342DE!663.trak
    Weblogs that reference this entry
    • None