基于cookie机制的系统应用

上传人:E**** 文档编号:113979424 上传时间:2019-11-10 格式:PDF 页数:4 大小:153.46KB
返回 下载 相关 举报
基于cookie机制的系统应用_第1页
第1页 / 共4页
基于cookie机制的系统应用_第2页
第2页 / 共4页
基于cookie机制的系统应用_第3页
第3页 / 共4页
基于cookie机制的系统应用_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于cookie机制的系统应用》由会员分享,可在线阅读,更多相关《基于cookie机制的系统应用(4页珍藏版)》请在金锄头文库上搜索。

1、基于C o o li e 机制的系统应用 全天彤程伟 武汉市电 信局 武汉 4 3 0 0 7 4 摘 要 H TTP 协议是一种无连接的 协议, 因 此在 服务 器端无法知 道客户端的状态, C o o li e 机 制正 是现今在 I n t e rn e t i n t r a n e t结 构中广泛使用的,用于解决该问 题的 技术。 本文详细 描 述了C o o k i e机制的内部原理,对该机制的 安全性问 题进行了讨 论。 并通过例子,给出 其 在基于现有通用平台 ( 如U N I X和WI N D O WS N T ) 上的实际 运用。 关镶字C o o l i e ; H T

2、T P 协议;I n t e r n e t ;安全性 众 所周知, H T T P 协议是一种无连接的 协议,也就意 味着H T T P 服务器无法了 解客户 端的状态。但如今,网 上的许多应用,需要服务器能及时 掌握客户访问网 页的 信息如最 近的访问时间等等。 如网上购物系统,服务器须了解当前 用户选择了 那些商品及数量情 况,这时H M协议就无能为力了。C o o ki e 技术正是解决此问 题的一 个机制。 它通过设 置和 发送C o o k i e ,以 使服务 器端能获取和存储 客户端的状态。 1 .什么是 C o o k i e 当 一 个 H T T P服务器响 应客户端的请

3、求时, 它会视情 况,向 客户端 返回 一个 H T T P对 象 用于纪 录客户端的状态信息。 对象中包 含满足此状态的 U R L范围 、保存期限 等。当 在保存期限内,客户端再次访问 设定范围内的 U R L时, 就会自 动将服务器端发送来的状 态信息返回回去。这样,服务器与客户端之间 就建立了 一个状态联系的 手段。 这个 H T T P 对象就 称为C o o k i e , 2 . C o o k i e 机制服务器端的实 现 2 .1 S e t - Co o k i e 在服务 器端,C o o k i e 的 设置通 过在H T T P 响 应的H e a d e r 信息中

4、 加入S e t - C o o k i e 来实 现。 一般用C G I 程序来完成。S e t - C o o k i e 的语 法如下: S e t - C o o k i e : : N A ME = V A L U E ; e x p i r e s = D A T E ; p a t h = P A T H ; d o m a i n - D O M A I N -NA M E ; S e c u r e NAME = V AL UE 这是 S e t - C o o k i e语句唯一一个必须有的属性。状态信息的 名字 ( 即 C o o k i e )为 N A ME ,值为V

5、 A L U E . N A ME 不得以“ $ ” 打头。 V A L U E对 用户端不透明 ,可以 被服务器设为任意值。 E x p i r e s = D A T E .灯切思即甲万叭八 该属性定义了C o o k i e 的生命期。 一旦超过了该日 期, 此C o o k i e 将不再存放和 发送。 D A T E 的格式为; w e e k d a y D D - MM - Y Y Y Y H H :M M:S S G M T 该属性为可 选项,当 未设置时,C o o k i e的生命期到本次会 话的结束为止。若服务 器 想删除 一 个 C o o ld e , 则 应发 送一

6、 个内 容 相同 , 但 E x p ir e s 韵值为 过去时 间 的 Co o k i e . .Do ma m7- DOMA I N NAME 该属性定义了本 C o o k i e 所适用的范围。只 有在特定域中的 服务器才可以设置相应 域的 C o o k i e 。当客户 端需访问 某个U R L时,将对本机上保存的C o o k i e列表进行 域名的匹配,匹 配算 法是按尾对齐的 方式进行的,即 a b c .n e t 对 w w w l . a b c .n e t 和 w w w 2 . a b c .n e t 都有效。若 存在与申 请的U R L相匹配的域名,则需向

7、 服务器发送相 应的 C o o k i e . D O M A IN N A M E字串 必须包含两个以上的 “ . ” ,以 避免出 现设置 “ . c o m”的 情况。当 本属性缺省时,d o m a i n 被设为该 服务 器名。 .P a t h =P AT H 该属性指定 请求 U R L的路 径。在客 户机上,当 某个 C o o l i e 刚通过了d o m a i n的匹 配,那么, 下一步就要对 U R L中的路径进行匹配。该属性的缺省设置为包含 “ S e t - C o o k ie ”语句文 件所在的 路径。 .S e c u r e 当一个C o o k i e

8、 被设为S e c u r e , 则意味着客户端在回 送C o o k i e 时必须进行加密传输。 2 .2 控制C a c h i n g 初始服务器必须 考虑到 在客户端有代理服务器的倩况。此时,S e t - C o o k i e 将被 保存在 代理服务器上,然而, 那些针对个人用户.保存 着个人信息的 C o o k i e是不应被保存在公 共缓存区中的。 根据R F C 2 1 0 9 建议, 此时, 初始服务器 还应传送一些附 加的H=/1.1响应H e a d e r : .为防止将S e t - C o o k i e 头缓存,加 入: C a c h e - c o n

9、 t r o l : n o - c a c h e = “ s e t - c o o k i e “ . 为 防 止 将 私 有 文 件 保 存 到 公 共 缓 存 中 , 应 增 加: C a c h e - c o n t r o l : p r i v a t e , 允许缓存文件, 但在传送到客户 端之前必须 证实: C a c h e - c o n t ro l : m u s t - r e v a l i d a t e . .允许缓存文件, 但在传送到客户端 之前, 代理服务器必 须证实; C a c h e - c o n tr o l : p r o x y - r

10、e v a li d a t e 目 前,在N e t s c a p e的 服务器上是这样实现的:代理服务器不缓存S e t - c o o k i e ,当 代理 服务器接受到 含有S e t - c o o k i e 的H T T P响 应后, 他会再产生一个同 样的S e t - c o o k i e h e a d e r 送到客户端:同样, 当一个客户端的 请求包含 C o o k ie时,也会 经过代理服务器发送到原 始服务器。 2 . 3 解释客户端发回的C o o l d e 与 F O R M的处理方式 相 似,客户端发回 C o o k i e的内 容存放在 H TT

11、P - C o o k i 。 环境变 量中,因 此服务器也如处理F O R M一 样对C o o k i e 进行处理,视具体应用,采取下 一步的 操作。 3 . C o o k i e 在客户端的实现 客户端接收到来自 服务器的S e t - c o o k i e 响应后,对 它进行解释, 将那些未设的 属性设 为缺 省值。 之后可根据客户端的 具体情况,选择是否接受 此 C o o k i e .若不接受 C o o k i e . 那么以 后的 应用可能 会受到限制。 C o o k i e被接受后,会在客户机上留下一段纪录。如 N e t s c a p e 浏览 器, 在N e

12、ts c a p e 程 序目 录 下 有 一 个 名 为C o o ld 。 的 文 本 文 件 , 其 中 一 个C o o k i e 一行,分 别记录着各个C o o k i e 的 名字、 生存时 间、域和路径的 信息。 当 客户端请求一个U R L时, 要对本地所保存的C o o k i e 进行搜索、 匹 配, 若存在路径、 时间 相符的C o o k i e ,则通过P O S T的方式,将C o o k i e 的内 容放入H T T P 请求H e a d e r , 发 送回 服务器。 若有多个 C o o k i e 都满足匹 配条件,那么 他们都将被发送回去。C o

13、o k i 。 的语 法如 下: Co o k i e : NAME= V AL UE: P a t h = v a l u e : DOMAIN=v a lu e 4 . C o o k i . 的安全性问 魔 由 于设置C o o k i e 实际 上是在客户机上进行写操作,因 此多 数人认为存在安 全性隐患。 其实,在C o o k i 。 的实现上是有一定限制的: 一个客户机最多可以 存放3 0 0 个C o o k i e ; 一 个 C o o k i e ,包括其名字和字串 ,不能超过 4 K字节; 每台服务器 ( 域) 最多可设置 2 0 个C o o k i e 。当客户机上

14、 C o o k i e 的数量超过了3 0 0 或每机 2 0的限 制,客 户机会自 动删除 最早 使用的C o o k i e ; 若一 个C o o k i e 超过了4 K字节,客 户机会自 动进行截 取. 由 于 C o o k ie的主要用途是用来纪录状态 信息,因 此一些站点通过它 来获取用户的个 人信息 ,如此用户经常访问那些内容、 用户的E M A I L地址、用户的密码等,以 对其进行 针对性的商 业宣传。 当然,这些都是侵犯个人隐私的,所以 ,用户应对此有所戒备,可 采 取 完 全 或 有 选 择地 拒 收C o o k i e 的 办 法 来 进 行 防 范 。 若您想

15、拒收 C o o k i e , 或在收到 S e t - c o o k i e 后再进 行人为判断 是否接 受,则 可以 在浏 览 器上 进 行 设 置。 如 在N e t s c a p e 4 .。 上, 可 在: 拒 收 所 有 的C o o k i e ; 接 受 所 有C o o k i e ; 只 接受 关于发送服务器的C o o k i e , 这三个选项中进 行选择, 还可 选择在接受C o o k i e 对给出 提示。 5 .一个例子 以 下用 P E R L编写的C G I 程序实现一 个记录用户 访问时间的 例子:当 用户提交一个 U R L请 求到服务器时, 服务

16、器 检测其中 是否包括 C o o k i e 信息, 若无,则将当前的系 统时 间作为C o o k i e 的变元值, 返送客户机, 提示用户; 若有, 则将客户机上的原C o o l d e 删除, 并用当前的 系统时间作为 C o o k ie的 变元值, 在客户机上设置一 个新C o o ki e ,同时, 给出 提示。 ( $ s e c , $ m in , $ h o u r ,$ m d a y , $ m o n , $ y e a r , $ w d a y , $ y d a y , $ i s d s t ) = l o c a lt im e ( t i m e ) ; $ mo n = $ m o n + l ; $ n o w = $ y e a r . - .$ m o n . - .$ m d a y . .$ h o u r . : 一$ m i n . . : . $ s e c ; i f ( $ E N V H 7 T P _ 0 0 0 K I E - - / c o o k i e

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号