二十一天学通JavaScript:cookie的安全性
来源:互联网 发布:矩阵ppt模板 编辑:程序博客网 时间:2024/05/01 23:46
二十一天学通JavaScript:cookie的安全性
本文节选自《21天学通JavaScript》一书
在默认情况下,cookie都是采用不加密的HTTP的传输方法,这种方法传输容易被别人窃听。如果cookie中的信息很重要,就不能用这种方法了。因此,在JavaScript提供了cookie的secure属性,可以解决这个问题。
secure就是安全的意思。当设置了cookie的secure属性之后,cookie就只能通过HTTP或其他安全协议来传输,这样消息就不容易被别人窃听了。cookie的secure属性是一个布尔类型的值。
【范例14-6】在本例中,cookie"username"被设置成在10分钟之后过期,可以被服务器上的所有目录访问,可以被localhost域里的所有服务器访问,安全状态为安全。如示例代码14-6所示。
示例代码14-6
01 <html>
02 <head><title>cookie的参数</title>
03 <script language="javascript">
04 function setCookie()
05 {
06 var value=prompt("请输入cookie变量的值",""); //接收用户输入的值
07 if(value!=null) //判断value是否为空
08 {
09 var expiration = new Date((new Date()).getTime() + 10 * 60000); //设置cookie存活期
10 document.cookie = "username=" + escape(value)+ "; //给cookie编码
11 xpires ="+ expiration.toGMTString()+";path=/;domain=local host; secure"; //设路径
12 alert("设置cookie值成功编码结果为:username="+escape(value)); //输出结果
13 }
14 else
15 {
16 alert("设置失败,你没有输入任何值!"); //检查输入是否为空
17 }
18 }
19 function getCookie(cookie_name) //自定义函数用于获取cookie的值
20 {
21 var allcookies = document.cookie; //声明一个变量allcookies
22 var value=null; //将value的初始值设为空
23 var searchs=cookie_name+"="; //给变量searchs赋cookie名
24 if(allcookies.length>0) //查看cookie是否为空
25 {
26 var offset=allcookies.indexOf(searchs); //找到要查找的变量名
27 if(offset!=-1) //判断所查找的变量名是否存在
28 {
29 offset+=searchs.length;
30 var end=allcookies.indexOf(";",offset); //找到变量值的结束位置
31 if(end==-1) //防止没加“;”号的情况发生
32 {
33 end=allcookies.length; //取得cookie的长度
34 }
35 value=unescape(allcookies.substring (offset,end)); //取得变量的值
36 }
37 else
38 {
39 value=null; //将变量value赋为空
40 }
41 }
42 return value; //返回变量value的值
43 }
44 </script>
45 </head> <!--文档头结束-->
46 <body> <!--文档体->
47 <input type="submit" name="Submit" value="设置cookie值" onClick="set Cookie()">
48 <input type="submit" name="Submit2" value="读取cookie值" onClick="alert (getCookie('username'))">
49 </body> <!--文档体结束-->
【运行结果】打开网页文件运行程序。
【代码解析】该代码段第4~18行的作用是设置cookie,这里设置了这个cookie的键、值、存活期、路径等,同时还编码过。第19~43行是读取所设置的过程,注意读取的时候要先解码。再有,Date设置是以毫秒为单位,因此getTime方法返回时间,单位为毫秒。
提示:设置了secure属性,只保证cookie与Web服务器之间的数据传输过程加密,而保存在本地的cookie文件并不加密
- 二十一天学通JavaScript:cookie的安全性
- 二十一天学通JavaScript:cookie的编码
- 二十一天学通JavaScript:cookie的编码
- 二十一天学通JavaScript:cookie的生存期
- 二十一天学通JavaScript:创建与读取cookie
- 二十一天学通之cookie的路径和域
- 二十一天学通C语言:函数型指针
- 二十一天学通C++之异常概述
- 二十一天学通C++之异常处理机制
- 二十一天学通VC++之创建用户界面线程
- 二十一天学通VC++之创建工作者线程
- 二十一天学通C++之异常处理机制
- 二十一天学通Java:调用对象为null值的引用
- 二十一天学通C#:.NET中文件与文件夹的操作
- 二十一天学通C语言:使用const声明指针变量
- 二十一天学通C语言:C语言中指针排序
- 二十一天学通C++之使用try/catch捕获异常
- 二十一天学通C++之使用throw抛出异常
- abap 中 for all entries in 中的 distinct 功能
- 解决B/S系统开发中Activex控件需要激活的问题
- java.lang.UnsupportedClassVersionError: Bad version number in .class file
- Solaris 系统ssh 上传 断线 问题的一种情况
- Linux下软件安装方法
- 二十一天学通JavaScript:cookie的安全性
- 计算机启动过程详解
- Prototype使用学习手册指南之dom.js
- 建立双向链表
- ASP.NET利用GridView导出EXCEL
- 关于IE和FF创建元素的区别
- koch curve的实现思路
- Struts2.0标签使用之action
- java对Excel的写操作