`
pcajax
  • 浏览: 2162939 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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: http://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入侵程序。

<script type="text/javascript"><!-- google_ad_client = "pub-6770445892601887"; /* 468x60, 创建于 09-11-19 */ google_ad_slot = "4437639877"; google_ad_width = 468; google_ad_height = 60; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
分享到:
评论

相关推荐

    对session和cookie的深刻理解

    ### 对Session和Cookie的深刻理解 #### Session与Cookie的基本概念 在Web开发中,了解Session和Cookie是非常重要的,因为它们是实现用户会话管理和状态跟踪的关键技术。简单来说,Session和Cookie都用于存储用户...

    阿里P7大牛实战演练到源码透析——分布式环境session丢失爬坑记

    通过上述实战演练和源码透析的过程,我们可以深刻理解分布式环境下Session管理的关键技术和挑战。针对不同场景选择合适的Session管理方案,并结合具体实践中的问题进行优化调整,是确保分布式系统稳定运行的重要保障...

    认识session

    标题:认识session 描述:session深层认识,多种用法在浏览器与服务器之间的纽带。 ### Session的概念及作用 ...开发者在利用Session增强用户体验的同时,也需对其底层行为有深刻理解,以避免潜在的性能和安全问题。

    面试题php基础.pdf

    候选人应确保对MVC设计模式有深刻理解,熟悉至少一种流行的MVC框架,能够准确解释GET和POST方法的区别,理解SESSION与COOKIE的使用场景,掌握日期差计算和字符串操作的基本方法,具备编写数据库操作和正则表达式的...

    PHP实例开发源码—PHPizabi 中文SNS交友平台php版.zip

    4. **session和cookie**:在用户认证和会话管理方面,PHPizabi可能使用了session和cookie技术,来跟踪用户状态和实现登录功能。 5. **模板引擎**:为了实现动态网页,PHPizabi可能采用了模板引擎,如Smarty或Twig,...

    08-本科-JAVA开发工程师 简历.doc

    对ORM(对象关系映射)有了深刻理解,特别是Hibernate的使用。此外,他在IOC(依赖注入)和AOP(面向切面编程)方面也积累了实践经验,特别是在Spring容器中的应用。他还提高了使用Ajax和JQuery与后端Action交互处理...

    .NET面试题目

    面试者需要对以上知识点有深入的理解和掌握,并能够灵活运用到实际的开发工作中。通过这些面试题目,面试官可以评估应聘者的专业技能水平和对.NET开发的熟悉程度。理解这些概念对于.NET开发者来说是基本功,而深入...

    jsp web论坛源代码

    【jsp web论坛源代码】是一个基于JAVA...通过深入学习和分析这个【jsp web论坛源代码】,开发者可以了解完整的Web应用开发流程,提升JAVA和MySQL的实战技能,同时对MVC架构、安全性控制和用户会话管理有更深刻的理解。

    如何面试一个java程序员.pdf,这是一份不错的文件

    1. **项目理解和架构设计**: - 询问候选人印象最深刻的项目,了解其在项目中的角色和贡献。 - 探讨项目架构,包括系统组成、部署环境和数据流向,评估其对整体系统设计的理解。 - 评价其在项目中使用的分值系统...

    ASP.NET 单点登录demo

    总之,ASP.NET的SSO实现涉及对身份验证机制的深刻理解,包括Cookie管理、票证加密和验证以及安全策略的实施。通过以上步骤,开发者能够构建一个高效且安全的SSO系统,为用户提供无缝的多应用访问体验。在实际开发...

    基于PHP实现大学生旅游攻略网站【优质毕业设计、课程设计项目】.zip

    5. **session和cookie管理**:在用户登录和会话管理中,PHP的session和cookie起到了关键作用。通过它们,网站可以跟踪用户状态,如保持登录、个性化推荐等。 6. **URL路由**:PHP项目通常使用URL路由机制,将用户...

    [信息办公]云网OA 2.2_cloundoa.rar

    了解如何进行用户认证(如session、cookie管理)、授权(角色权限分配)以及防止SQL注入、XSS攻击等安全措施,对保证系统稳定运行至关重要。 6. **部署与调试**:部署OA系统到Web服务器(如Tomcat、Jetty等)并进行...

    完整纯jsp的网络记事本(简单实用,非常适合初学者),带小型Sqlite数据库

    这个项目是学习JSP和数据库交互的入门级实例,通过实践,你能建立起对Web开发基础的深刻理解,并逐步提升自己的编程技能。记得在实践中多思考、多调试,不断探索和解决问题,这样才能从中学到更多。

    H-EasySpider-个人总结-沈一聪1

    1. 反爬虫技术调研:在实验准备阶段,我深入了解了反爬虫技术,这包括但不限于验证码机制、IP限制、User-Agent变化、Session和Cookie管理等策略。通过调研,我了解到反爬虫技术是网站为了防止恶意爬取数据而设置的一...

    Example_3_1.rar_asp.net

    3. **状态管理**:由于HTTP的无状态性,ASP.NET提供了多种状态管理机制,如视图状态、隐藏字段、Session和Cookie等,来保存和恢复用户会话信息。 4. **数据绑定**:ASP.NET提供了数据绑定机制,方便地将数据源(如...

    ASP+ACCESS酒店预定管理系统(开题报告+源代码+论文).rar

    通过阅读和分析源代码,可以深入理解ASP的编程模式,例如如何使用ADO(ActiveX Data Objects)进行数据库操作,如何使用Session和Cookie管理用户状态,以及如何设计和组织ASP页面结构等。 6. 毕业设计价值: 对于...

    php实例,php例子

    "counter_1"和"counter_2"可能展示了计数器的实现,这涉及到PHP的会话管理(Session)和cookie技术。这些实例可以帮助你理解如何统计网页访问量,实现简单的用户行为追踪。 "pic"可能包含了图片处理的示例,比如...

    BBS.rar_bbs_bbs java web_java web_site:www.pudn.com_web bbs

    5. **session和cookie**:在Web应用中管理用户状态的关键技术,session存储服务器端数据,cookie存储客户端数据。 6. **过滤器和监听器**:在请求处理前后执行特定任务,如登录验证、字符编码转换等。 7. **Spring...

    bigproject.zip

    再者,销售系统通常会涉及用户身份验证和授权机制,这可能通过session管理和cookie技术实现,确保用户安全地进行购买操作。后台管理部分可能包括商品管理、订单处理、用户管理等功能,这些功能的实现需要对MVC...

Global site tag (gtag.js) - Google Analytics