了解cookie
1.cookie数据会自动在Web浏览器和Web服务器之间传输的,因此服务端脚本就可以读,写存储在客户端的cookie值。
2.在javascript中使用cookie不会采用任何加密机制,因此是不安全的。但是,通过https来传输cookie数据是安全的,这和https的协议有关。
3.cookie的API中根本没有提供诸如查询,设置,删除cookie的方法,所有这些操作都要通过以特殊格式的字符串形式读写Document对象的cookie属性来完成。每个cookie的有效期和作用域,都可以通过cookie属性来分别制定。这些属性也是通过在同一个cookie属性上以特殊格式的字符串来特定的。
4.在js中使用cookie,首先需要确保cookie是否启用:{
a.通过检测navigator.cookieEnabled=true,则为cookie启用状态(但是,只具备‘当前浏览会话生命周期’的非持久化cookie仍然是启用的)
b.但是,navigator.cookieEnabled=true 不是所有的浏览器都支持这个属性,因此可以通过读,写和删除测试cookie数据来测试是否支持cookie。
}
5.除了name和value(及键值对),cookie还有一些可选的属性控制cookie的有效期和作用域。cookie默认的有效期很短暂,它只能维持在Web浏览器的会话期间,一旦用户关闭浏览器(是关闭浏览器,不是关闭单个窗口),cookie保存的数据就丢失了。
6.如果想要延长cookie的有效期,可以通设置max-age属性,但是必须明确告诉浏览器cookie的有效期是多长(单位是秒)。一旦设置了有效期,浏览器就会将cookie数据存储在一个文件夹中,并且直到过了指定的有效期才会删除该文件。
7.cookie的作用域是通过文档源和文档路径来确定的,该作用域通过cookie的path和domain属性也是可以配置的。默认情况下,cookie和创建它的web页面有关,并对该web页面以及和该web页面同目录或子目录的其他的web页面可见。比如:web页面www.example.com/catalog/index.html页面创建一个cookie,那么www.example.com/catalog/order.html和www.example.com/catalog/widge/index.html都能访问访问那个创建的cookie,因为是创建cookie的页面的通过目录或子目录下的页面。
8.若想要整个网站都能够使用相同的cookie 值。可以设置cookie的路径(设置cookie的path属性)。这样一来,来自同一个web服务器的web页面,只要URL是以指定的路径前缀开始的,都可以分享cookie。比如http://www.example.com/catalog/index.html页面创建一个cookie,并且将路径设置为"/catalog"(path="/catalog"),那么该cookie对于http://www.example.com/catalog/路径下的文件和页面都可以访问cookie。同理,设置‘/’路径,那么http://www.example.com/下的文件都能访问。
9.将cookie的路径设置成‘/’ ,等于是让cookie和localStorage拥有同样的作用域,同时当请求该站点任何一个Web页面的时候,浏览器都必须将cookie的名字和值传递给服务器。但是,要注意的是,cookie的path属性不能被用作访问控制机制。如果一个web页面想要读取同一站点其他页面的cookie,只要简单的将其他页面以隐藏<iframe>的形式加载进来,随后读取对应文档的cookie就可以了。
10.cookie的作用域默认由文档源限制。但是有些大型网站想要子域之间能够共享cookie如fanyi.baidu.com,yinyue.baidu.com,这个时候就需要通过设置cookie的domain属性来达到目的。如果catlog.exmple.com域下的一个页面创建了一个cookie,并将其path属性设置成‘/’,其domain属性设置成'./example.com',那么,该cookie将对所有catlog.example.com, order.example.com以及任何其他.example.com域下的任何其他服务器都可见。如果没有为一个cookie设置域属性,那么domain属性的默认值当前web服务器的主机名。要注意的是,cookie的域只能设置为当前服务器的域。
11.cookie的secure属性,它是一个布尔类型的属性,用来表明cookie的值以何种形式通过网络传递。cookie默认是不以不安全的形式(通过普通的,不安全的HTTP连接)传递的。而一旦cookie被标识为“安全的”,那就只能当浏览器和服务器通过HTTPS或者其他安全的协议连接的时候才能传递他。
保存cookie:待续
了解cookie的更多相关文章
- 超大 Cookie 拒绝服务攻击
有没有想过,如果网站的 Cookie 特别多特别大,会发生什么情况? 不多说,马上来试验一下: for (i = 0; i < 20; i++) document.cookie = i + '= ...
- IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题
你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6.7.8.9下都跑的好好的,唯独到了IE10.11这些高版本浏览器就不行了?好吧,这个问题码农连续2天内遇到了2次.那么,我们 ...
- 解决cookie跨域访问
一.前言 随着项目模块越来越多,很多模块现在都是独立部署.模块之间的交流有时可能会通过cookie来完成.比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入c ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- 一个诡异的COOKIE问题
今天下午,发现本地的测试环境突然跑不动了,thinkphp直接跑到异常页面,按照正常的排错思路,直接看thinkphp的log 有一条 [ error ] [2]setcookie() expects ...
- [转载]Cookie/Session的机制与安全
Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道.本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题. 因 ...
- jquery.cookie的使用
今天想到了要为自己的影像日记增加赞的功能,并且需要用到cookie. 记得原生的js操作cookie也不是很麻烦的,但似乎jquery更简单,不过相比原生js,需要额外引入2个文件,似乎又不是很好,但 ...
- 跨域问题,前端主动向后台发送cookie
跨域是什么? 从一个域名的网页访问另一个域名的资源,就会出现跨域.只要协议.端口.域名有一个不同就会出现跨域 例如: 1.协议不同 http://www.baidu.com:80 和 https:/ ...
- 【流量劫持】沉默中的狂怒 —— Cookie 大喷发
精简版:http://www.cnblogs.com/index-html/p/mitm-cookie-crack.html 前言 上一篇文章 讲解了如何借助前端技术,打造一个比 SSLStrip 更 ...
- 好好了解一下Cookie
Cookie的诞生 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的.Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用.比如判断用户是否是第一次访问网站.目前最新 ...
随机推荐
- javascript --- 声明提前(学习笔记)
声明提升 未声明变量 console.log(a); 在没有定义 a 的情况下,直接使用,会报错. 声明变量 console.log(a); var a = 2; 输出结果:undefined 并不会 ...
- Linux就该这么学--命令集合1(常用系统工作命令)
1.用echo命令查看SHELL变量的值(前面有$符号): echo $SHELL 2.查看本机主机名: echo $HOSTNAME 3.查看当前的系统时间: date 4.按照“年-月-日 时:分 ...
- memset 导致的段错误(segmentation fault)
在调试Minixml库时,定义了一个结构体: struct ssid_info_s{ std::string wl_ssid_name; std::string wl_ssid_mac; std::s ...
- Ubuntu增加Swap分区大小
参考:http://blog.csdn.net/mznewfacer/article/details/7334592 以下摘自上述地址内容,并做了点小修改: 1.首先用命令free查看系统内 Swap ...
- Codeforces Round #376 (Div. 2) C. Socks —— 并查集 + 贪心
题目链接:http://codeforces.com/contest/731/problem/C 题解: 1.看题目时,大概知道,不同的袜子会因为要在同一天穿而差生了关联(或者叫相互制约), 其中一条 ...
- PHP截取中英文混合字符
<?php //////////////////////////////////////////////////////////////////// // PHP截取中英文及标点符号混合的字符串 ...
- 英语发音规则---gh
英语发音规则---gh 一.总结 一句话总结:gh字母组合的读音在中学英语课本中归纳起来主要有"发音"和"不发音"两种情况. gh字词首是发/g/,因为需要开头 ...
- C#开发遇到的常见问题及知识点
今天遇到的类型初始值设定项引发异常的原因是:类没有添加[Serializable]属性. this.DialogResult = System.Windows.Forms.DialogResult.O ...
- yii表单的各种验证
/验证规则详细配置 public function rules() { // NOTE: you should only define rules for those attributes that ...
- WebApi发送HTML表单数据:文件上传与多部分MIME
5.3 Sending HTML Form Data5.3 发送HTML表单数据(2) 本文引自:http://www.cnblogs.com/r01cn/archive/2012/12/20/282 ...