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 不管是对 Java Web 的初学者还是熟练使用者来说都是一个令人头疼的问题.在初入职场时恐怕很多程序员在面试的时候都被问到过这个问题.其实这个问题回答起来既简单又复 ...
- 对session和cookie的一些理解
对session和cookie的一些理解 由于项目需要,最近用session容器比较多,传载的同时加上了自己的一些理解,不足之处还请大家补充和纠正. 一.cookie机制和session机制的区别 * ...
- session 和cookie的理解
session和cookie可以这样理解: 1. 由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你 ...
- 第十章 深入理解Session与Cookie
理解Cookie 理解Session Cookie安全问题 分布式Session框架 Cookie压缩 表单重复提交问题 多终端Session统一 转载于:https://www.cnblogs.co ...
- 对Session、Cookie的完全理解
导读:这是J道论坛中关于Session.Cookie讨论中一个道友的理解,我觉得很好,就把它给转过来了. 以下是文章内容: 1. HTTP协议本身是"连接-请求-应答-关闭连接"模 ...
- 【第10章】深入理解Session与Cookie
2019独角兽企业重金招聘Python工程师标准>>> 1.理解Cookie1.1.作用:当一个用户通过HTTP访问服务器的时候,服务器会将一些key/value键值对返回给客户端浏 ...
- 以微信公众号爬虫为例,谈谈对session、cookie和token认证的理解
为什么需要这些认证 我们通过浏览器访问多数网站,本质上都可以理解为客户端(用户)和服务端(网站)之间的一次遵循http协议的请求和应答,比如:把a页面给我(返回a.html),删除b图片(删除b.jp ...
- nodeJS学习之旅-----session的使用,cookie,webstorage的理解
一,session简介 session是另一种记录客户状态的机制,cookie保存在客户端,session保存在服务器 session运行在服务器,客户端第一次访问服务器时,就可以将客户的登录信息保存 ...
- 什么是Cookie和Session?—— Cookie和Session的区别?—— 一文教你理解清楚什么是Cookie和Session,以及常见的开发面试问题?
cookie和session区别 cookie和session 背景说明 1.cookie 1.1.定义 1.2.作用 1.3.组成(种类和参数) 1.3.1.会话 Cookies .永久性 Cook ...
最新文章
- ubuntu 14.04如何设置静态IP
- Zencart的首页php 301,Zencart 做了301重定向后不能登陆网站后台的解决方案
- c语言输入6名学生5门课程的成绩,求解输入10个学生5门课的成绩,分别用函数实现下列功能:...
- 四大开源项目联合发布 腾讯已成Github全球贡献前十公司!
- jQuery 设置表格隔行变色、隔列变色
- jstack 脚本 自动日志_在 Linux 中使用 Bash 脚本删除早于 “X” 天的文件/文件夹...
- 资产管理日志分类参考截图
- 敏捷开发一千零一问系列之十二:敏捷实施的步骤?
- CHIL-SQL-FOREIGN KEY 约束
- 基于比较的排序算法集
- Discuz = 7.2 SQL注入漏洞详情
- java actionsupport_ActionSupport与action区别
- 手机触摸pass测试软件,PASS——功效分析和样本量计算软件
- 六自由度机器人设计过程-范例
- 什么工具可以分析php源代码,[精选]PHP性能分析工具,你在用哪一个?
- 静态资源服务器(部署前端项目)
- QQ连连看单机版辅助制作全流程
- 在VirtualBox Linux 7u2 中安装Oracle RAC 12.2.0.1.0
- snapchat_如何重播Snapchat快照
- C/C++中string和int相互转换的常用方法