`
zccst
  • 浏览: 3297487 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Cookie 高级篇

阅读更多
作者:zccst

Cookie 高级篇

  一.cookie 路径概念

  在基础知识中有提到 cookie 有域和路径的概念,现在来介绍路径在 cookie 中的作用。

  cookie 一般都是由于用户访问页面而被创建的,可是并不是只有在创建 cookie 的页面才可以访问这个 cookie。

  默认情况下,只有与创建 cookie 的页面在同一个目录或子目录下的网页才可以访问,这个是因为安全方面的考虑,造成不是所有页面都可以随意访问其他页面创建的 cookie。举个例子:

  在 "http://www.cnblogs.com/Darren_code/" 这个页面创建一个cookie,那么在"/Darren_code/"这个路径下的页面如: "http://www.cnblogs.com/Darren_code/archive/2011/11/07/Cookie.html"这个页面默认就能取到cookie信息。

  可在默认情况下, "http://www.cnblogs.com"或者 "http://www.cnblogs.com/xxxx/" 就不可以访问这个 cookie(光看没用,实践出真理^_^)。

  那么如何让这个 cookie 能被其他目录或者父级的目录访问类,通过设置 cookie 的路径就可以实现。例子如下:

  document.cookie = "name=value;path=path"
  document.cookie = "name=value;expires=date;path=path"
  红色字体path就是 cookie 的路径,最常用的例子就是让 cookie 在跟目录下,这样不管是哪个子页面创建的 cookie,所有的页面都可以访问到了:

  document.cookie = "name=Darren;path=/"
  

  二.cookie 域概念

  路径能解决在同一个域下访问 cookie 的问题,咱们接着说 cookie 实现同域之间访问的问题。语法如下:

  document.cookie = "name=value;path=path;domain=domain"
  红色的domain就是设置的 cookie 域的值。

  例如 "www.qq.com" 与 "sports.qq.com" 公用一个关联的域名"qq.com",我们如果想让 "sports.qq.com" 下的cookie被 "www.qq.com" 访问,我们就需要用到 cookie 的domain属性,并且需要把path属性设置为 "/"。例:

  document.cookie = "username=Darren;path=/;domain=qq.com"
  注:一定的是同域之间的访问,不能把domain的值设置成非主域的域名。



  三.cookie 安全性

  通常 cookie 信息都是使用HTTP连接传递数据,这种传递方式很容易被查看,所以 cookie 存储的信息容易被窃取。假如 cookie 中所传递的内容比较重要,那么就要求使用加密的数据传输。

  所以 cookie 的这个属性的名称是“secure”,默认的值为空。如果一个 cookie 的属性为secure,那么它与服务器之间就通过HTTPS或者其它安全协议传递数据。语法如下:

  document.cookie = "username=Darren;secure"
  把cookie设置为secure,只保证 cookie 与服务器之间的数据传输过程加密,而保存在本地的 cookie文件并不加密。如果想让本地cookie也加密,得自己加密数据。

  注:就算设置了secure 属性也并不代表他人不能看到你机器本地保存的 cookie 信息,所以说到底,别把重要信息放cookie就对了,囧...

  

  四.cookie 编码细节

  原本来想在常见问题那段介绍cookie编码的知识,因为如果对这个不了解的话编码问题确实是一个坑,所以还是详细说说。

  在输入cookie信息时不能包含空格,分号,逗号等特殊符号,而在一般情况下,cookie 信息的存储都是采用未编码的方式。所以,在设置 cookie 信息以前要先使用escape()函数将 cookie 值信息进行编码,在获取到 cookie 值得时候再使用unescape()函数把值进行转换回来。如设置cookie时:

  document.cookie = name + "="+ escape (value)
  再看看基础用法时提到过的getCookie()内的一句:

  return unescape(document.cookie.substring(c_start,c_end))
  这样就不用担心因为在cookie值中出现了特殊符号而导致 cookie 信息出错了。
分享到:
评论

相关推荐

    cookie设置插件jquery.cookie.min.js

    cookie设置插件jquery.cookie.min.js 文章《javascript设置cookie高级篇可跨域访问》https://blog.csdn.net/cplvfx/article/details/117822956

    JavaScript开发技术大全.rar

    本资源从JavaScript最基础,扎实的语法讲起,并配合代码演示,介绍了语言篇,文档对象篇,高级篇。比普通的基础教程要更加深入,详细,并且各种类型的例子非常实用生动。从js的语言基础,包含了数据结构,部署类型,...

    03《PHP学习手册》.zip

    在内容排列上由浅入深,让读者循序渐进地掌握编程技术;...第三篇为高级篇,包括PDO数据库抽象层、ADODB数据库抽象层、PHP的字符编码、程序调试与异常处理、Smarty模板技术;第四篇为实战篇,包括企业网站开发模板。

    21天学通JavaScript(第2版)

    第三篇讲解的是javascript的高级技术,主要讲解了javascript与xml技术、正则表达式、ajax基础、ajax高级应用、javascript与插件和javascript的调试与优化等。最后一篇为综合案例篇,用一个完整的例子讲解了如何使用...

    21天学通javascript——PDF完整版下载.zip

    第三篇讲解的是Javascript的高级技术,主要讲解了Javascript与XML技术、正 则表达式、Ajax基础、Ajax高级应用、Javascript与插件和Javascript的调试与优化等。最后一篇综合案例篇用一个完整的例子讲解了如何使用...

    JavaScript完全学习手册

    Javascript完全学习手册内容简介:本书分4篇14章,介绍Javascript的知识,全书内容包括:Javascript语法基础、流程控制、函数、内置对象编程、文档对象模型DOM与事件驱动、处理XML、使用Cookie和...

    python3.5全栈工程师零基础到项目实战全套

    课程目录: 第一阶段:Python3.5基础语法篇 01.Python3.5介绍与循环 14...第四阶段:Python3.5 高级拓展篇 26.Python3.5 openstact云计算专题 10课 27.Python3.5 CMDB系统开发讲解 10课 28.Python3.5 算法补习教程 7课

    java web技术开发大全(最全最新)

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和...

    javascript完全学习手册2 源码

    第3篇 JavaScript高级编程篇 第7章 正则表达式 7.1 正则表达式及其作用 7.2 正则表达式参考语法 7.2.1 限定符 7.2.2 选择匹配符 7.2.3 分组组合和反向引用符 7.2.4 特殊字符 7.2.5 字符匹配符 7.2.6 ...

    java web开发技术大全

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和...

    21天学通JavaScript 源代码1(还有10章在源代码2文件)

    第三篇讲解的是JavaScript的高级技术,主要讲解了JavaScript与XML技术、正则表达式、Ajax基础、Ajax高级应用、JavaScript与插件和JavaScript的调试与优化等。最后一篇综合案例篇用一个完整的例子讲解了如何使用...

    21天学通JavaScript 源代码2(有一部分在源码1文件中)

    第三篇讲解的是JavaScript的高级技术,主要讲解了JavaScript与XML技术、正则表达式、Ajax基础、Ajax高级应用、JavaScript与插件和JavaScript的调试与优化等。最后一篇综合案例篇用一个完整的例子讲解了如何使用...

    javascript完全学习手册1 源码

    第3篇 JavaScript高级编程篇 第7章 正则表达式 151 7.1 正则表达式及其作用 151 7.2 正则表达式参考语法 152 7.2.1 限定符 154 7.2.2 选择匹配符 157 7.2.3 分组组合和反向引用符 158 7.2.4 特殊字符 160 7.2.5 ...

    如何优化浏览器-这篇解决方案文件提供有关用户如何优化Internet浏览器,使之更好的让Windows Live Hotmail工作的信息。

    这篇解决方案文件提供有关用户如何优化Internet浏览器,使之更好的让Windows Live Hotmail工作的信息。 按照以下步骤为Windows Internet Explorer 6或7优化以及恢复默认设置: 1. 开启Internet Explorer,然后...

    PHP从入门到精通第二版

    本书从初学者角度出发,通过通俗易懂的语言,丰富多彩的实例,详细介绍了...第3篇 高级应用 第21章 Smarty模板技术 第22章 PHP与XML技术 第23章 PHP与Ajax技术 第4篇 项目实战 第24章 应用Smarty模板开发电子商务网站

    ASP.NET3.5从入门到精通

    第五篇 ASP.NET 3.5 高级编程 第 15 章图形图像编程 15.1 图形图像基础 15.1.1 图像布局 15.1.2 GDI+简介 15.1.3 绘制线条示例 15.1.4 .NET Framework 绘图类 15.2 图形编程 15.2.1 Graphics 类 15.2.2 绘制基本图形...

    PHP入门到精通

    第3篇 高级应用 PHP网络开发(教学录像:42分33秒) 21.1电子邮件的原理 21.2系统的配置需求(SMTP和POP3服务器安装配置) 21.3应用PHP发送和接收电子邮件 PHP与XML技术(教学录像:31分17秒) 22.1XML的概述 22.2...

    PHP入门到精通02

    第3篇 高级应用 PHP网络开发(教学录像:42分33秒) 21.1电子邮件的原理 21.2系统的配置需求(SMTP和POP3服务器安装配置) 21.3应用PHP发送和接收电子邮件 PHP与XML技术(教学录像:31分17秒) 22.1XML的概述 22.2...

    Web安全深度剖析(张柄帅)

    10.1.4 浏览器Cookie机制 190 10.1.5 检测CSRF漏洞 193 10.1.6 预防跨站请求伪造 197 10.2 逻辑错误漏洞 199 10.2.1 挖掘逻辑漏洞 199 10.2.2 绕过授权验证 200 10.2.3 密码找回逻辑漏洞 204 10.2.4 支付逻辑漏洞 ...

Global site tag (gtag.js) - Google Analytics