zoukankan      html  css  js  c++  java
  • application,session,cookie三者之间的区别和联系

    application:
        程序全局变量对象,对每个用户每个页面都有效

    session:
        用户全局变量,对于该用户的所有操作过程都有效
        session主要是在服务器端用,一般对客户端不透明,主要是服务器读取并返回其值
    cookie:
        客户端信息存放对象,可以把用户的信息保存在用户的本地,
        不必总是访问服务器

    global.asa:
        golbal顾名思义,全局,里面放的是关系全局的信息,过程,函数,变量
        一旦网站或者虚拟目录启动了,这个 global.asa 文件就会运行

    application_onstart:
        一旦网站或者虚拟目录开始运行时就会执行的过程

    application_onend
        一旦网站或者虚拟目录停止运行时就会执行的过程

    session_onstart:
        一旦 session 开始运行了就会被执行的过程
        (通常是用户开始访问这个网站或者这个虚拟目录)

    session_onend:
        一旦 session 结束运行了就会被执行的过程
        (通常是用户离开网站或者虚拟目录以后,session超时以后运行)

    这两个函数能不能输出东西的?
        (可以,上面四个其实是四个事件,这些事件将触发一些操作,当然包括
        输出操作,不过好像支能够在服务器端的说)

    在这个文件里定义的application,session是不是每一个页面都能调用的?
        是的,没有错
       
     session变量保存在客户端主机的内存上,关闭浏览器或者session脚本过期后,即自动清除。
    cookies保存在客户端主机的硬盘上,可以自行设置cookies的存在周期,除非设置了临时cookies,否则关闭浏览器后cookies信息仍旧保存在主机的硬盘上。

    Cookies的安全性能一直是倍受争议的。虽然Cookies是保存在本机上的,但是其信息的完全可见性且易于本地编辑性,往往可以引起很多的安全问题。所以Cookies到底该不该用,到底该怎样用,就有了一个需要给定的底线。
    先来看看,网站的敏感数据有哪些。
    登陆验证信息。一般采用Session("Logon")=true or false的形式。
    用户的各种私人信息,比如姓名等,某种情况下,需要保存在Session里
    需要在页面间传递的内容信息,比如调查工作需要分好几步。每一步的信息都保存在Session里,最后在统一更新到数据库。
    当然还会有很多,这里列举一些比较典型的
    假如,一个人孤僻到不想碰Session,因为他认为,如果用户万一不小心关闭了浏览器,那么之前保存的数据就全部丢失了。所以,他出于好意,决定把这些用Session的地方,都改成用Cookies来存储,这完全是可行的,且基本操作和用Session一模一样。那么,下面就针对以上的3个典型例子,做一个分析
    很显然,只要某个有意非法入侵者,知道该网站验证登陆信息的Session变量是什么,那么他就可以事先编辑好该Cookies,放入到Cookies目录中,这样就可以顺利通过验证了。这是不是很可怕?
    Cookies完全是可见的,即使程序员设定了Cookies的生存周期(比如只在用户会话有效期内有效),它也是不安全的。假设,用户忘了关浏览器或者一个恶意者硬性把用户给打晕,那用户的损失将是巨大的。
    这点如上点一样,很容易被它人窃取重要的私人信息。但,其还有一个问题所在是,可能这些数据信息量太大,而使得Cookies的文件大小剧增。这可不是用户希望所看到的。
    显然,Cookies并不是那么一块好啃的小甜饼。但,Cookies的存在,当然有其原因。它给予程序员更多发挥编程才能的空间。所以,使用Cookies改有个底线。这个底线一般来说,遵循以下原则。
    不要保存私人信息。
    任何重要数据,最好通过加密形式来保存数据(最简单的可以用URLEncode,当然也可以用完善的可逆加密方式,遗憾的是,最好不要用md5来加密)。
    是否保存登陆信息,需有用户自行选择。
    长于10K的数据,不要用到Cookies。
    也不要用Cookies来玩点让客户惊喜的小游戏。

    -------------------------转自http://blog.sina.com.cn/isxiaoting

  • 相关阅读:
    9个免费的桌面产品自动化测试工具
    How to wait for any one of the two element to appear on the screen?
    git仓库过大致使clone失败的解决方法
    Maven项目打包出现:No compiler is provided in this environment. Perhaps you are running on a JRE rather than JDK
    eclipse java maven testng The import org.testng cannot be resolved
    Codeforces Round #165 (Div. 1) B 269B Greenhouse Effect
    Codeforces Round #162 (Div. 1) B 264B Good Sequences
    HDU 4512 HDOJ 吉哥系列故事——完美队形I 腾讯2013初赛第三场
    HDU 4483 HDOJ Lattice triangle
    第二届腾讯校园编程马拉松参赛感想 极限!马拉松
  • 原文地址:https://www.cnblogs.com/shoneworn/p/3385342.html
Copyright © 2011-2022 走看看