Cookies

2024-08-31

Cookies(精选3篇)

Cookies 篇1

引言:人们在上网时, Cookies会记录用户的访问时间、访问页面和每个浏览过的网页驻留时间等, Cookies在提高用户上网体验和方便的同时, 也存在安全隐患, 极易泄露用户的个人隐私, 正确使用Cookies功能且确保Cookies安全, 不泄露用户个人上网信息就显得尤为重要。

现在上网很多网站都需要用户注册, 不然很多需要权限的资源就无法访问, 在注册成功并登录后, 在一定的时间内, 用户无需重新登录仍可访问相应权限的资源, 这些网站会自动识别和记录用户信息, 实现这个功能的就是Cookies, Cookies会记录用户的访问时间、访问页面和每个浏览过的网页驻留时间等信息, 这些网站会根据用户的浏览资源提供相应的个性化服务, 例如会自动推荐一些相关联的资源等, 还会根据用户浏览的习惯和各类统计信息来完善网站功能等, 但Cookies在提高用户上网体验和方便的同时, 也存在一定的安全隐患, 极易泄露用户的个人隐私, 正确使用Cookies功能且确保Cookies安全, 不泄露用户个人信息就显得尤为重要。

Cookies及其功能

Cookies是存储在用户计算机内, 记录用户浏览相关网站用户信息的文本文件, 是一种保持Web应用程序执行状态的技术手段, 其目的是为了帮助相关网站记住用户信息状态。

用户使用不同的浏览器访问网站时, Cookies会存储在相应浏览器的文件夹内, 同时, 会以用户访问网站的域名为名称生成相应的文件夹。可以将Cookies看作成不同的“仓库”, “仓库”内有很多的“房间”, 这些“房间”内存放的是就是用户信息, “仓库”因用户使用浏览器的不同, 其“物理位置”也会不同, “仓库”内“房间”的名称就是用户浏览相应网站的域名。用户在浏览相应网站时, 网站服务器不仅会反馈给用户相应浏览网页, 也会根据用户相关信息反馈一个包含有时间、日期等相应信息的Cookies, 并将之存储在用户的硬盘上, Cookies信息会在网站服务器和用户浏览器之间进行传递, 不同浏览器和不同网站之间的Cookies不会彼此覆盖。之后, 当该用户再次访问网站时, 浏览器会在用户硬盘Cookies文件夹内查找与该网站相关联的Cookies, 如果该Cookies存在, 那么浏览器便会将该Cookies和网页请求一起发送到网站, 如图1所示, 为使用IE浏览器查看Cookies信息的方法。当然, 并不是所有的浏览器都将Cookies信息放在文本文件中, 比如有的浏览器则是将Cookies信息存储在注册表中。

Cookies的主要安全隐患

Cookies有许多安全隐患, 其中极易造成用户信息丢失的安全隐患主要有3点:

一是Cookies本身容量不足而易溢出。目前大多数浏览器最大仅支持4096字节的Cookies, 同时还限制了存储的Cookies数量, 如果要存储更多数量的Cookies, 较早的Cookies便会被丢弃, 所以当在使用Cookies时, 特别是用户访问网站数量较多的时候, 非常容易丢失关键网站的Cookies。

二是易遭受XSS攻击。XSS攻击为跨站脚本攻击, 经常用来攻击存在XSS漏洞的用户和服务器, 它允许恶意Web用户将代码植入到提供给其它用户使用的页面中, 即攻击者可以把自己的代码越过安全边界线注射到另一个不同的、有漏洞的Web站点中, 当这些注入的代码作为目标站点的代码在受害者的浏览器中执行时, 攻击者就能窃取如用户网银、各类管理员帐号等各类敏感信息, 可以读取、篡改、添加、删除企业敏感信息和钓鱼欺骗用户、在网站上挂木马等, 其攻击过程如图2所示。

三是Cookies不能即时清除问题。因为Cookies有一定的生存周期, 当用户A在使用自己的帐号上网后, 有些信息还会驻留在计算机内, 当后面的用户上网时, 就会使用用户A的信息上网, 这样就会出现用户A的信息被后面的用户冒用的现象, 甚至做一些非法的操作等, 特别是在网吧等公共场所上网或一机多用户操作时, 就会给某些用户造成一定的个人信息泄露的损失, 这也是Cookies的一个弊病, 即在退出浏览器后, 很多Cookies的信息不会被即时清除。

确保Cookies安全措施

一是做好XSS漏洞防御。现在XSS漏洞已经很少, 用户需要及时升级自己上网所使用的浏览器版本, 较旧版本的浏览器还不能很好地防御XSS漏洞。此外, XSS漏洞是利用了Web页面的编写不完善来进行攻击的, 用户可以使用安全软件对包括URL、查询关键字、HTTP头、POST数据等在内的提交信息进行可靠的输入验证, 仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交, 对其他的一律过滤, 对包括Session标记或者HTTP引用头进行检查, 以防Cookies被第三方网站所执行等。

二是定期清理Cookies。清理Cookies不仅可以清理系统上网垃圾, 提高系统运行速度, 还可以保证用户的上网信息不被泄露, 用户必要养成定期清理Cookies的习惯, 可以手动清除, 也可以选择工具软件进行清除, 清理Cookies虽然不能百分百的解决安全隐患, 但可有效预防Cookies可能造成的安全隐患。当Cookies是在文件夹时, 以IE浏览器为例, 清除Cookies的方法如图3所示。也可以使用图1的方法, 找到各Cookies文件, 将其删除。

对于Cookies在注册表中的清除方法如下 (如图4所示) :在Windows操作系统中运行“Regedit”, 找到如下键值:HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/C u r r e n t V e r s i o n/Internet Settings/Cache/Special Paths/Cookies, 这是Cookies存留在内存中的键值, 只要把这个键值删除即可。

三是必要时可以禁用Cookies或提高Cookies的安全级别。通过禁用Cookies、开启Cookies安全警告或每次访问后删除与操作相关的Cookies方式防范跟踪Cookies, 这里以IE浏览器为例, 禁用Cookies方法和提高Cookies的安全级别如下 (如图5所示) :打开“工具/Internet选项”中的“隐私”选项卡, 调整Cookies的安全级别。通常情况, 可以调整到“中高”或者“高”的位置即可, 也可以将安全级调到“阻止所有Cookies”。如果只是为了禁止个别网站的Cookies, 可以单击“编辑”按钮, 将要屏蔽的网站添加到列表中。在“高级”按钮选项中, 可以对第一方Cookies和第三方的Cookies进行设置, 第一方Cookies是用户浏览网站的Cookies, 第三方Cookies是非正在浏览的网站发给用户的Cookies, 通常要对第三方Cookies选择“拒绝”, 目前主流的浏览器都有禁止第三方Cookies的功能。若没有此项功能的浏览器, 用户可以通过安全防护软件来防范跟踪Cookies。这里需要说明的是, 禁止Cookies或提高Cookies安全级别虽然可以增强用户上网的安全级别, 但也有可能会造成一些弊端或降低用户的上网体验, 比如在一些需要Cookies支持的网站里, 会发生一些莫名其妙的错误, 如无法打开部分文件或不能使用包括免费电子邮件在内的某些网站功能等, 所以笔者建议用户可以对上网的部分安全网站进行筛选。

四是养成一个良好的上网习惯。不要在一些来源不明的网页上填写任何有关个人的隐私信息, 特别是一些重要和敏感的信息, 以免泄漏用户个人信息从而造成一些不必要的损失。例如在打开一些网站时, 可以通过网站的信息来查看网站是否合法, 合法的网站其安全性一般都值得信任和有保证的。一般合法的网站在网站的最下方有类似“京ICP证032616号”的网站信息, 然后在搜索网站中搜索关于“国家工信部网站备案查询”, 找到“工信部”主页, 在主页中找到公共查询的入口, 可在其中查询用户上网的网站是否合法。

Cookies 篇2

与其他常规网络技术中不经意就产生安全隐患一样, 作为Web服务器中存在的一个细微环节, Cookies在开发之初, 是作为一个改善用户体验、提高网络使用速度而出现的, 而目前Cookies却被无数攻击者作为恶意攻击中一个灵巧的环节而存在, 尤其是在Web攻击成为主流攻击的情况下, Cookies爆发出巨大的安全隐患, 使许多表面上看起来固若金汤的Web应用系统都遭到了灭顶之灾。

Cookies欺骗攻击在很多时候攻击者根本不需要费力去注入、测试, 直接通过Cookies欺骗就可以获得原本需要大力气注入才能获得的管理权限。

1 Cookies概述

1.1 Cookies的定义

Cookies是指某些网站为了辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据, 这些数据通常都经过加密。Cookies的信息量比较小, 约由255个字符组成, 当用户正在浏览某站点时, 它储存于客户机的随机存取存储器RAM中[1], 退出浏览器后, 它储存于用户的硬盘中, 仅占4k B硬盘空间, 通常, 当用户结束浏览器会话时, 系统将终止所有的Cookies。

Cookies以文本文件的形式存储于浏览器目录中, Cookies中的大部分信息是普通的, 如浏览一个站点时的每一次击键信息和被访站点的地址等, 但是许多Web站点使用Cookies来储存针对注册口令、用户名、信用卡编号等私人的数据, 当该用户下一次又回到该服务器的时候, 服务器可从该浏览器读回此信息。

1.2 Cookies的用途

Cookies在网络中的应用就其实质来说, 服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息, 以判断在HTTP传输中的状态。

Cookies的用户主要体现在以下几个方面:

(1) 最典型的应用是判断注册用户是否已经登录网站, 用户可能会得到提示, 是否在下一次进入此网站是保留用户信息以便简化登录步骤。

(2) 另一个重要应用场合是“购物车”之类的处理, 用户一般会在一段时间内在同一家网站的不同网页中选择不同的商品, 这些信息都会写入Cookies, 以便用户在最后付款时提取信息。

(3) 第三个用途是网站的个人化处理, 这是Cookies最有效的用户之一。在一些提供了个人化服务的网站上, 如果用户设置了自己喜欢的配置, 并且存储了Cookies, 每次用户登录该网站时, 浏览器先会检查用户是否有预先定义的Cookies, 如果有, 就会将Cookies和用户对网页的请求一起发送给服务器, 返回用户自己定义的页面和其他相关信息。

1.3 Cookies的工作过程

Cookies一般通过HTTPHeader从服务器端返回到浏览器[2]。首先, 服务器端在响应中利用SetCookies header来创建一个Cookies, 然后浏览器在它的请求中通过Cookies header包含这个已经创建的Cookies, 并且将它返回至服务器, 从而完成浏览器的认证。

浏览器创建了一个Cookies后, 对于每个针对该网站的请求, 都会在Header中包含这个Cookies, 但对于其他网站的求其是不会跟着发送的, 而且浏览器会一直这样发送, 指导Cookies过期为止。

1.4 Cookies的危害

任何事物都存在两面性, Cookies在为用户提供便利的同时, 其在特定网站上存储的用户账号和密码, 从某种程度上说用户的隐私和安全已经出现严重危机, 当其被不法用户盗取时, 能够造成难以想象的危害。

2 Cookies欺骗攻击

2.1 Cookies欺骗原理

Cookies欺骗, 就是在只对用户做Cookies验证的脚本系统中, 攻击者通过修改Cookies的内容的方式来得到相应的用户权限, 并在成功登陆后进行进一步攻击。

传统的程序员认为虽然Cookies记录了用户的账号、密码等信息, 但在网络传输过程中是经过MD5加密的, 即使被攻击者获取也无法看到具体信息, 因此认为是安全的[3]。其实, 对攻击者来说, 截取Cookies并不需要知道加密后字符的含义, 只要服务器的验证程序存在漏洞, 攻击者只需把截获得Cookies向服务器提交并通过验证, 就可以轻松的冒充合法用户登录网站了。

传统程序员比较常用的存在安全漏洞的脚本系统登录过程的判断代码为:

上面的代码结构虽然清晰, 判断过程完备, 看似十分安全, 但由于没有对Cookies的真伪进行判断, 存在安全漏洞。在上面的代码中, 由于服务器是直接读取, 而且默认Cookies信息是安全且真实的, 从而忽略了Cookies在本地是可以修改和伪造的, 使攻击者非常简单地通过Cookies欺骗轻松入侵。

2.2 Cookies欺骗的危害

针对Cookies漏洞, 按照攻击造成危害的程度, 攻击者的攻击方式分为初级和高级两种级别。

初级的Cookies欺骗攻击通过修改Cookies的过期时间, 从而实现永久登录、无限使用某些限制功能的目的[4]。在一些巨大的网站平台或者私人论坛上, 为了节省流量、空间等有限网络资源, 都会通过程序限制用户使用某些消耗网络资源比较大的网络服务 (如注册用户的上传空间和上传数量等) , 这些限制基本上都是通过Cookies来实现的, 对于这样的脚本系统, 成熟的攻击者通过修改本地Cookies信息, 达到欺骗服务器, 实现永久登录并无限使用网络资源的目的。

高级的Cookies欺骗攻击就是目前所流行的Cookies欺骗。针对一些程序员编写脚本代码时将用户账号、密码、相关权限等隐私信息存放于Cookies中的现象, 攻击者可以利用盗取管理员、论坛版主等高级用户的Cookies, 然后破解出密码的方式成功获取权限, 或者连破解密码都不用, 直接通过脚本程序的Cookies验证不完善缺陷, 直接获得管理员权限。

2.3 盗取Cookies的方式

Cookies的盗取都是通过欺骗来实现的, 实现起来一般有以下几个方面。

(1) 通过脚本代码

对于不同的脚本系统, 存在不同的脚本代码, 但基本原理相似。Perl版盗取Cookies的基本代码如下:

(2) 利用flash

利用flash可以实现在较高级环境下盗取Cookies。Flash中的get URL () 函数能够自动打开指定的网页, 利用这一功能可以把用户引向一个包含盗取Cookies信息的网站。当某个论坛或博客允许使用HTML代码或flash标签时, 攻击者就可以利用上述技术中收集Cookies的代码, 将它放到论坛或博客里, 然后给帖子取一个吸引人的主题, 写上有趣的内容, 通过大量的访问很快就可以收集的用户的Cookies, 达到盗取的目的, 当管理员、版主等高级用户对这些火热的帖子进行关注时, 其Cookies同样被盗取, 从而获得相应的权限。

(3) 利用社会工程学

社会工程学就其实质来说就是欺骗, 当一个网站的安全防御技术比较高, 管理员的安全意识比较好时, 攻击者为了入侵该网站, 经常采用社会工程学的方式将一个包含小特殊代码的精美flash动画传送给管理员, 管理员一旦打开该动画, flash里的代码就悄悄链接上网, 打开一个肉眼根本发现不了的页面, 从而盗取管理员的Cookies。

3 Cookies欺骗步骤及实现

3.1 典型的欺骗步骤

攻击者首先以一个正常用户身份访问网站, 在该网站上注册一个自己知道账号密码的合法的用户, 当然其权限比较低[5]。注册成功后, 攻击者利用该用户正常登录, 并查看系统是否自动保存和生成Cookies, 也就是第二部需要找到本地的Cookies存放文件。在找到自己的Cookies后, 攻击者通过脚本系统暴漏的一些正常信息, 找到高权用户的用户名。攻击者在获得自己的Cookies后, 通常使用诸如IEcookies View等工具, 修改本地的Cookies信息, 利用代码验证不严的缺陷, 重新提交经过修改的Cookies信息, 进行Cookies欺骗, 获得管理员或者其他高权限用户的相关权限。

归纳起来, Cookies欺骗的典型步骤为:

(1) 找到存放Cookies欺骗漏洞的代码。

(2) 获取低权限用户的本地即时Cookies信息。

(3) 利用脚本系统正常功能, 获得管理员或其他高权限用户的账户信息。

(4) 构造、提交非法Cookies信息, 达到欺骗系统获取高权限的目的。

3.2 利用Cookies欺骗攻击留言本系统的实现

目前, 很多商务类网站都喜欢在产品页面后放置一个轻便风格的留言本程序, 以方便有兴趣的潜在客户即时返回信息。这样的留言本由于功能简单, 代码也不十分规范, 存在很多漏洞, 因此利用Cookies欺骗攻击留言本系统是攻击者常用的手法。

按照典型攻击步骤, 攻击者首先注册一个常规用户, 注册成功后, 关闭所有页面, 然后使用刚刚注册的账户密码登陆, 并保存登录信息, 以便在本地生成此网站的Cookies文件。

然后攻击者下载并安装Iecookies View工具, 在列表中找到刚刚保存的留言本系统对应的本地Iecookies View信息, 编辑该信息, 把values值的内容中的“useridname”改为管理员, 接着保存Cookies修改, 关闭网页后再打开该网页, 就在网页右边出现了“管理中心”的选项, 即获得了管理员权限。

当然, 在获得管理员权限后, 攻击者往往还需要上传自己的Webshell, 才能达到进一步控制脚本系统的目的。

本方法只适合系统只判断Cookies中的用户名就赋予权限的留言本程序, 大部分留言本程序需要构造特定的Cookies内容及突破多重验证才可以成功欺骗。

4 Cookies欺骗的防御

从实质上说, Cookies欺骗产生的根本原因是脚本程序, 正是程序员在脚本程序开发中存在的各种安全隐患才造成了这些攻击, 最根本的防御方法就是从程序员入手, 但是, 由于缺乏脚本层面的代码规划化标准、防御技术落后于攻击技术以及人容易犯错误等原因, 造成Cookies欺骗攻击无法彻底防御, 只能在较大范围内进行避免。

针对Cookies欺骗的原理和实现步骤, 需要构建一个从广泛意义上防范Cookies欺骗的脚本系统, 设计思路如下。

(1) 不在Cookies中存放敏感信息。这是一个理想化的思路, 其实质就是抛弃Cookies, 但明显违背安全平台的设计思路, 不能因为Cookies可能存在欺骗攻击而废止它的便利性。

(2) 严格保护数据库不泄露。保护数据库不泄露不仅仅是Cookies防御技术中需要注意的安全措施, 也是其它安全措施中必须注意的重点。

(3) 使用单一多特功能德尔账户进行日常维护, 不适用、少使用最高权限账户。这一设计思路单就防范Cookies欺骗来说, 是比较实用、灵巧而有效的防范方法, 适用于对脚本编程了解不深, 无法进行脚本系统修改和代码层加固的管理员。

(4) 严格堵住脚本系统中可能提交盗取Cookies的代码。为了实现正常的用户交互功能, 一般的脚本系统都有发帖、留言、讨论、评论等功能, 这些功能都允许用户提交或者上传一些自己的代码、程序, 这样的代码有可能就是盗取Cookies的代码, 因此, 出于安全考虑, 管理员要对这些代码进行严格审查, 或者使用过滤插件、过滤软件过滤掉用户提交的一些非法信息。

(5) 使用Session和Cookies双重验证

Session和Cookies的用途各有千秋, Cookies保存在客户端, 攻击者可以很容易地获取或复制到其它计算机上使用, 而Session保存在服务器端, 当用户与网站的交互结束时, Session的生命周期随即结束, 从这个层面上说, Session的安全性比Cookies要高。就管理员或网站运营商来说, 处于服务器压力和安全性考虑, 最完美的方案就是二者结合使用。

5 结束语

Cookies欺骗是通过盗取、修改、伪造Cookies的内容来欺骗Web系统, 并得到相应权限或者进行相应权限操作的一种攻击方式, 由于存在一些无法更改的缺陷, 在带给大家提高网络使用速度的同时, 也被无数攻击者利用盗取用户的机密信息, 因此, 从广泛意义上构建一个防范Cookies欺骗和注入的脚本系统, 可以在一定程度上避免遭到Cookies攻击。

参考文献

[1]宁珂.网站Session欺骗攻击与防范[J].科技传播, 2012 (19) :214-215.

[2]邱永华.XSS跨站脚本攻击剖析与防御[M].北京:人民邮电出版社, 2013:45-51.

[3]卢俊.SQL注入与XSS攻击防范方法的研究以及防范模型的设计与实现[D].北京:北京邮电大学, 2011.

[4]高少杰.SQL注入攻击防御方法研究[D].云南大学, 2010.

Cookies 篇3

关键词:网络考试系统,Cookies,ASP,JavaScript,VBScript

引言

人类自有考试史以来,关于考试的客观性、公正性和可操作性的讨论一直就没有停止过,并由此推动了考试方法和考试手段的不断变革。近几年随着网络应用的不断发展,产生了许多各具特色的网络考试系统,它们在许多领域得到广泛应用。网络考试系统应用于各种开放式教育系统;应用于国家的各级各类等级、水平考试;应用于学校的学科考试等。特别有影响的案例是美国教育考试中心(ETS)举办的研究生入学考试(GRE)的计算机考试系统,它使原来每年只有两次参加考试的机会变为每个工作日都可以参加考试。

但由于考试过程的特殊性和开发技术的局限性,网上考试系统在功能和性能上也存在许多不尽人意的地方,考场恢复就是其中一个有待解决的问题。考场恢复是指考生在考试过程中由于突发情况引起网络考场异常退出,当考生再次登录系统后系统自动将网络考场恢复到该考生异常退出时的状态,从而最大限度减少由于网络考场异常退出对考生所造成的损失。

具体探讨了实现考场恢复的关键技术,提出了一种由服务器端数据库和客户端Cookies协同工作来实现考场恢复的方案。

1 考场恢复的重要性和必要性

网络考场的异常退出可能由多种原因引起,例如突然停电、系统死机或自动重启、网络连接中断、考生答卷由于网络情况没有正确提交等等。因为这些突发情况,造成考生意外退出网络考场后,当考生再次登录考场继续参加考试时,考试系统如果已经保留了考生已经完成的答案数据和所用时间,并将它们重新调用组织到考卷中去,就可以使得网络考场恢复到考生退出前的状态,这样考生就可以继续进行考试,而不需要重新开始考试了。可见网络考场异常退出的处理和考场的自动恢复是网络考试系统开发中非常重要的环节,否则学生就要重新参加考试,那样就会给学生带来时间和精力的巨大浪费。更糟的是如果只有几个学生遭遇异常情况,那么本次考试对这几个学生也就难以体现公正性了。

2 考场恢复的关键技术

2.1 服务器和客户端的分工协作

网络考场的一般考试流程如图1所示,用户登录考试系统后由服务器返回一张空白考试试卷,然后由客户端启动计时器开始考试,在此期间客户端独立工作而不与服务器交换信息,从而提高了网络利用率,有效减轻了网络负荷,提高了考试系统对网络的适应性。当客户端计时器计时结束或用户提前交卷后,客户端将用户答题信息一次提交给服务器,由服务器根据试题库中试题答案自动评分,并返回用户考试得分。

因此,由于异常情况发生造成用户退出后,当用户再次登录系统申请考试时,应由服务器和客户端分工协作完成考场的恢复,由服务器端进行是否进行考场恢复的检测,在客户端进行考场恢复。考场恢复流程:在用户第一次登录申请考试时,服务器返回空白试卷并将空白试卷的编号写入用户数据库中status字段内,该字段默认值为零,在用户提交试卷后,服务器在阅卷后将该字段值恢复为默认值。每次用户登录时检测该字段值,如果该字段值为一试卷编号则表明用户发生了异常退出,需要进行考场恢复。考虑到互联网络的容量,用户考试期间不宜与服务器频繁进行数据交换,所以用户信息、用户答题信息和所用时间信息存入客户端Cookies,如果用户发生了异常退出,则考场恢复由客户端本地自主进行,从而减轻了服务器负担。这种设计对于机房突然断电时发生的考场恢复尤为有效,大幅度降低了服务器的工作量,提高了考场恢复的效率。

2.2 Cookies技术简介

Cookies是网站安放在电脑硬盘上用于存储记录的小的信息或文件组。Cookies技术使电脑“记住”网站上的信息以备将来之用。作为一种行业标准,Cookies技术被许多主要网站使用。

Cookies的主要用途是用来标识用户和为他们专门准备的可用网页。当你进入一个使用了Cookies的网站时,你需要填写一张诸如你的名字和爱好等信息的表格。这些信息会被打包到一个Cookie里面,并发送到你的Web浏览器中保存起来以备用。当你下次来同一个网站时,你的浏览器会把这个Cookie包发送到Web服务器上。服务器就会根据这些信息给你发回你常看的一些网页。所以,你可能会看到有你名字在上面的欢迎页面,而不是一些通用的欢迎页面。

2.3 数据信息的存储格式和存储事件触发

客户端Cookies中数据信息包含用户ID(testuserid)、试卷编号(paperid)、用户答案(oldanswer)、时间信息(escapetime)共四个变量。其中变量testuserid和paperid在用户启动定时器开始答题时写入的,而变量oldanswer和escapetime是随用户答题进度而动态改变的,其改变程序由两个事件触发执行。

时间信息由两种方式触发写入Cookies。一种是使用定时器每隔十秒触发来调用时间信息保存程序;另一种是在用户触发调用答题信息保存程序后转入时间信息保存程序。

用户答案信息的格式是:“题号/答案;题号/答案;……”其中题号为试题在数据库中的自动编号,而单选题、多选题和判断题均存在一张试题表中,所以题号唯一不会重复;答案为试题库中所存答案,单选题和判断题占一位,多选题占多位;题号与答案之间用“/”分隔,每道试题信息之间用“;”分隔,便于题目的定位和答案的提取。用户大体信息的改变是在用户点击鼠标选择答案时触发的。有两种类型:单选题或判断题;多选题。单选题或判断题只需考虑两种情况:添加新题答案,修改已答题答案;多选题则需要考虑三种情况:添加新题答案,已答题添加一个答案,已答题去掉一个答案。

用户答题信息存储程序流程如图2所示。

2.4 客户端读取本地Cookies数据进行考场恢复

当检测到用户需要进行考场恢复时,服务器根据需要恢复的试卷的编号从试卷库中提取试卷并发送到给客户端,同时在试卷信息中标记需要进行考场恢复,并将用户ID和所用的试卷编号等信息一并发送到客户端。客户端检测到服务器发送的考场恢复的标记后,读取Cookies中的用户ID和试卷编号信息并与服务器返回的信息进行比较,以确认Cookies中保存的答题信息是当前登录用户的考场恢复信息。确认完成后便调用考场恢复程序进行考场恢复。

客户端接收服务器发来的试卷并初始化以后,读取本地的Cookies数据,根据实现定义的答案存储格式提取用户的答题信息,并将提取的答题信息填写入试卷的相应答题处。用户点击开考按钮后,得到是其异常退出前未做完的试卷,从而可以继续考试。

3 应用实例

作者采用B/S架构,组合ASP网络数据库存取技术和VBScript、Java Script编程技术为某本科院校开发的网络考试系统,使用操作界面友好,提示信息清晰,用户操作简便。考试的发卷、收卷、改卷、评分和成绩的统计发布均由计算机自动快速完成,节省了大量的人力和物力。系统根据教师给定考试条件随机抽题组卷,学生作弊较难。该系统已经进行了大量的试验,证明了系统运行可靠、安全、实用和高效。系统结构如图3所示。

在该考试系统中采用的便是基于服务器数据库和客户端Cookies的网络考场恢复技术。使用该技术后,系统具备了考场恢复的能力,经过测试,达到了预期效果,且运行稳定。

4 结论

网络考试系统是现阶段网络应用系统研究和开发的一个热点。它是建立在国际互联网上的应用系统,客户端的配置可以极为简单,使考试不受地域的局限。一个完备的网上考试系统可以使用户在网上学习过后及时检验自己的学习效果,发现自己的不足,使学生的学习效率得到很大的提高,同时大大减少了教师出题和判卷等繁重工作的工作量。随着网络考试技术的发展,本考场恢复技术有很大的应用空间。但由于Cookies的存储大小有限制,所以该技术目前只能应用于选择题、判断题和题量不大的填空题。对于一些科目要求的作图题、作文题等占用很大存储空间的题目,需要有其它的技术来辅助完成考场恢复。

参考文献

[1]An Introduction to Cookies[EB/OL].http://web-monkey.wired.com.

[2]Danny Goodman著,汪厚祥,董京,春杨霞等译.JavaScript宝典[M].北京:电子工业出版社,2000.

[3]安如顺.一个基于internet的远程教学系统设计与实现[J].微机发展,1999(1):57-59.

上一篇:乡土美术教材下一篇:乳腺癌患者的临终护理

本站热搜

    相关推荐