- 浏览: 1540454 次
- 性别:
- 来自: 厦门
-
文章分类
- 全部博客 (516)
- Java (49)
- Java/Struts 2.0 (25)
- Java/Spring、Spring MVC (11)
- Java/Quartz (3)
- Java/Lucene (6)
- Java/Hibernate (19)
- Java/openJPA (7)
- Java/DWR (7)
- Java/Security、Spring Security/OAuth2 (6)
- Java/Threading (9)
- Java/XML (22)
- java/design pattern (4)
- Android (2)
- JavaScript (46)
- jquery (3)
- DB/MySQL (23)
- DB/Oracle (16)
- PHP (25)
- CSS (20)
- Linux (38)
- C/C++、DLL、Makefile、VC++ (31)
- 正则 (9)
- Eclipse (4)
- 安全、网络等概念 (25)
- 集群 (7)
- 网页 (5)
- 视频\音频 (1)
- HTML (6)
- 计算机数学/算法 (3)
- Virtualbox (1)
- LDAP (2)
- 数据挖掘 (6)
- 工具破解 (1)
- 其他 (13)
- Mail (1)
- 药材 (3)
- 游戏 (2)
- hadoop (13)
- 压力测试 (3)
- 设计模式 (3)
- java/Swing (2)
- 缓存/Memcache (0)
- 缓存/Redis (1)
- OSGI (2)
- OSGI/Gemini (0)
- 文档写作 (0)
- java/Servlet (3)
- MQ/RabbitMQ (2)
- MQ/RocketMQ (0)
- MQ/Kafka (1)
- maven (0)
- SYS/linux (1)
- cache/redis (1)
- DB/Mongodb (2)
- nginx (1)
- postman (1)
- 操作系统/ubuntu (1)
- golang (1)
- dubbo (1)
- 技术管理岗位 (0)
- mybatis-plus (0)
最新评论
-
pgx89112:
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
spring的rabbitmq配置 -
string2020:
不使用增强器 怎么弄?
OpenJPA的增强器 -
孟江波:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
spring的rabbitmq配置 -
eachgray:
...
spring-data-redis配置事务 -
qljoeli:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
spring的rabbitmq配置
手上一个广告项目,在Firefox下顺利测试通过。自信JS代码能兼容IE,FF测试过后随手就仍给CS测试,结果CS反馈说有问题。排查一番, 发现居然和Javascript 设置 Cookie 时的 path 有关。IE下Cookie种在 /或者URL所在路径时正常,如果Cookie值作用域在当前URL下则IE下javascript 无法获取到设置的Cookie值。
看下面演示代码:
var cookie_name = "name"; var cookie_value = "value"; expires = new Date(); expires.setTime(expires.getTime() + 86400 * 1000); // 有Bug document.cookie无法独到cookie_name值 document.cookie = cookie_name + "=" + encodeURIComponent(cookie_value) + "; expires=" + expires.toGMTString() + "; path=" + window.location.pathname; // 正常 document.cookie = cookie_name + "=" + encodeURIComponent(cookie_value) + "; expires=" + expires.toGMTString() + "; path=/test/"; // 正常 document.cookie = "cookie_name=" + encodeURIComponent(cookie_value) + "; expires=" + expires.toGMTString() + "; path=/";
怀疑是IE的Bug、
在google上 搜了下关键词: ie javascript cookie path bug
同样的问题在罪与罚
的博客上也有描述,而且博主联系过微软IEBLOG
的Eric。得到的回复是:
You have uncovered an IE bug where cookies that are set with a path that contains a filename (e.g. /page.htm) are not accessible to the document.cookie function, although they are correctly sent to the server in the HTTP header. This has been broken for at least 10 years and unfortunately probably will not be fixed in IE8.
Thanks,
-Eric
一个存在10年的Bug。。。而且IE8也不会修复,实在是无语。
需求是cookie值只对当前页面有效,没办法只好用替代方案,看代码:
//IE Cookie Bug 替代方案 var cookie_path = window.location.pathname; var cookie_name = encodeURIComponent(cookie_path.substring(cookie_path .lastIndexOf('/') + 1)); cookie_path = cookie_path.substring(0, cookie_path.lastIndexOf('/') + 1); var cookie_value = "value"; expires = new Date(); expires.setTime(expires.getTime() + 86400 * 1000); document.cookie = cookie_name + "=" + encodeURIComponent(cookie_value) + "; expires=" + expires.toGMTString() + "; path=" + cookie_path;
替代方案根据每个页面的URL文件名来做Cookie名,有效范围在当前页路经下。
如:url 等于 /test/test.html
则cookie名为test.html,有效路径为/test/
这样也可以做到同一个js部署在每个页面上能读到只对当前URL有效的cookie值。代价是当用户在同一级目录下访问很多页面时会导致cookie值不
断增大。结果是当前路径下的每个http请求都带很长一段的cookie,直接导致服务器接收客户端request的header长度增长,流量增长的同
时服务器负担也变重。而且根据 RFC 2109
的定义Cookie也有长度和个数限制,IE允许的最大 Cookie 长度是 4096 字节,允许50个
Cookie 名-值对。如果要突破50个名-值对的限制,可以在一个名-值使用Cookie字典的方式保存更多的Cookie变量。
http://blog.seateng.cn/archives/2009/03/ie-javascript-cookie-path-bug.html
评论
发表评论
-
Angularjs 1.x 中使用 layDate 日期控件
2017-10-18 11:30 1898本文参照Angularjs 中使用 layDate 日期控 ... -
简易向左移动的滚动效果 jquery simple marquee
2017-10-15 14:57 652<!DOCTYPE html> ... -
angualrjs添加动态指令(动态编译指令)
2017-09-26 20:45 599本文参考自后补全的代码:http://blog.csdn. ... -
CKeditor的取值和赋值
2017-07-05 14:51 1719<script type="text ... -
Spring boot 环境下配置CKEditor添加google map
2017-07-05 14:39 1286本文档基于已经搭建好基础ckeditor的环境上。如:ht ... -
javascript中借用别的类的方法
2015-12-23 21:58 505借用别的类的方法 /** * Created by ... -
Javascript的类与子类创建
2015-11-11 20:45 899声明父类与子类的示 ... -
jQuery 对 select 操作
2011-09-30 16:54 977转自:http://blog.sina.com.cn/s/bl ... -
JSON2的使用方法心得
2010-10-08 15:09 1916var myJSONObject = {"bindi ... -
json对象的应用
2010-09-07 10:37 1889JSON对象就像是PHP或Java中map型(数组) ... -
JQuery对html控件操作总结
2010-08-11 09:28 2436转自:http://www.cnblogs.com ... -
将json元素添加到表单select中
2010-08-10 15:06 1316将json元素添加到表单select中。 $.a ... -
js加密解密
2010-02-10 16:04 1205JavaScript Code Obfuscator ... -
设为首页JS,加入收藏夹js,加入收藏夹代码,设为首页代码,火狐和ie兼容
2010-01-25 23:10 3812<!DOCTYPE html PUBLIC " ... -
精通 JS正则表达式
2009-11-23 09:36 1106转自:http://www.iteye.com/topic/4 ... -
jQuery.Autocomplete 中文支持
2009-11-10 09:01 28520插件地址:http://bassistan ... -
强烈推荐:240多个jQuery插件
2009-11-08 21:26 1334概述 jQuery 是继 prototype 之后又一个优秀 ... -
jQuery中this与$(this)的区别
2009-11-04 16:28 2483$("#textbox").hover( ... -
JS获得鼠标位置(兼容多浏览器ie,firefox)
2009-10-31 18:57 3817<!DOCTYPE html PUBLIC " ... -
javascript 计算文字长度
2009-10-15 17:52 1739/** * 把中文字符替换两个星号,可以用来计算中文字符串的 ...
相关推荐
当一个Cookie被设置为HttpOnly时,JavaScript无法通过Document.cookie API或其他方式访问到这个Cookie。这样一来,即使网页中存在XSS漏洞,恶意脚本也无法窃取到包含敏感信息的Cookie,从而降低了攻击者盗取用户身份...
这个文件包含了javascript对浏览器cookie文件的设置、读、写、删除四个函数,非常好用。
3. **安全性**:由于Cookie可以被恶意利用,例如进行跨站脚本攻击(XSS),因此开发者需要谨慎处理Cookie的设置,包括设置HttpOnly属性以防止JavaScript访问,以及Secure属性确保只通过HTTPS协议传输。 **使用IE ...
在ASP.NET环境中,结合C#和JavaScript,我们可以实现跨语言的Cookie操作,以便于实现用户会话管理、个性化设置等功能。本文将详细探讨如何在C#后端和JavaScript前端中操作Cookie。 首先,C#在ASP.NET中处理Cookie...
cookie-banner, 基于JavaScript的cookie信息横幅,适用于欧盟 cookie Cookie标题 Cookie横幅是确保你遵守欧盟Cookie规则的一种非常简单的方法。 只要从你的页面引用 cookiebanner.min.js 脚本就完成了。Cookie ...
Cookie.js是一个专为JavaScript开发者设计的轻量级库,主要用于管理和操作浏览器中的cookie。这个库的主要优点是它的简洁性和低资源占用,使得它成为处理cookie的理想选择,尤其适用于那些对性能和加载速度有较高...
javascript 操作cookiejavascript 操作cookiejavascript 操作cookie
通过函数获取JavaScript cookie
// 设置特定域名下的 Cookie $.cookie('name', 'dumplings', { domain: 'qq.com' }); // 设置特定路径下的 Cookie $.cookie('name', 'dumplings', { domain: 'qq.com', path: '/' }); ``` #### 四、获取 Cookie ...
### Cookie设置httpOnly和secure属性实现及问题 #### 一、引言 在现代Web开发中,保护用户的隐私和数据安全至关重要。其中一种常见的做法就是通过设置Cookie的`httpOnly`和`secure`属性来增强安全性。这两个属性...
7. **HTTPOnly**:如果设置,防止JavaScript通过`document.cookie`属性访问该Cookie,增加安全性。 JavaScript中操作Cookie的方法主要有: 1. **创建Cookie**:使用`document.cookie`属性设置一个包含所有属性的...
ie不执行javascript修复ie不执行javascript修复ie不执行javascript修复 当IE不能正常运行时,打开该工具就可以了,自动修复
JavaScript可以通过设置document.cookie的属性值来保存Cookie,并可以通过读取Cookie来获取保存的信息。 六、结论 本文详细讨论了Cookie技术在JavaScript环境中的应用,包括Cookie的定义、Cookie的保存方式、利用...
在标准模式下,IE8及以下版本不支持通过`setAttribute`直接为元素添加事件监听器,这与现代浏览器如Chrome和Firefox存在差异。为了确保兼容性,通常推荐使用`addEventListener`方法为元素添加事件监听器,但由于IE8...
这篇教程将深入探讨在IIS(Internet Information Services)和Apache两种不同的Web服务器环境下,如何使用JavaScript来操作Cookie。 **一、Cookie的基本概念** Cookie是由服务器端创建,并发送到客户端浏览器的一...
在JavaScript中,可以通过`document.cookie`属性来设置Cookie。基本格式如下: ```javascript document.cookie = "name=value; expires=expiration_date; path=path; domain=domain; secure"; ``` - `name`: ...
"兼容多种IE的javascript日期控件"这个主题就是针对这个问题的一个解决方案。它是一个经过改造的calendar日期控件,旨在确保在不同版本的Internet Explorer(如IE6、IE8、IE9)中能够正常运行,尽管在Google浏览器中...
在代码中,可以设置一个 JavaScript 的 Date 对象,并使用 toGMTString() 方法来将其转换成 GMT 格式的字符串,用于设置 expires 参数。 知识点四:使用 JavaScript 显示访问次数和时间 要显示用户的访问次数和上次...
JavaScript中的Cookie管理和操作是Web开发中的基础技能,用于存储客户端数据。传统的操作方式主要依赖于`document.cookie`属性,但这种方式存在一些限制,比如字符长度限制、无法直接操作多个Cookie等。随着浏览器...
- Cookie大小限制:每个Cookie的大小不超过4KB,且每个域名下的Cookie数量有限制,一般为20个。 - 安全性:Cookie数据是明文传输的,因此不应存储敏感信息。为了增强安全性,可以使用HTTPS协议传输,并设置`secure`...