javascript中的cookie使用(javascript权威指南)

Web应用安全权威指南 笔记 Web应用安全权威指南 跳转至: 导航、 搜索 p41 每次会话认证完成后更改下一次的会话IDp44 Cookie Monster Bug:应该指定a.co.jp的却指定成co.jpphp.ini:session.cookie_httponly=on(JS不能访问Cookie) 不显示错误信息:display_errors=off 同源策略:外部网页JS无法访问 阅读详情

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
//cookie的存储,例如:下面时设置终止日期。
var nextyear=new Date();
nextyear.setFullYear(nextyear.getFullYear()+1);
document.cookie="version="+document.lastModified+";expires="+nextyear.toGMTString();
//-->
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript">
<!--
//cookie的读取
//读cookie属性,这将返回文档的所有cookie
var allcookies=document.cookie;
//查找名为的的开始位置
var pos=allcookies.indexOf("version=");
if(pos!=-1){
 var start=pos+8;
 var end=allcookies.indexOf(";",start);
 if(end==-1) end=allcookies.length;
 var value=allcookies.substring(start,end);
 value=unescape(value);  //escape()函数用于编码, unescape()用于解码

    //既然我们已经有了cookie的值,就可以使用它。
 //在这种情况下,cookies之前被设置为文档的修改日期。
 if(value!=document.lastModified)  //lastModified一个字符串对象,包含文档的最近修改日期
  alert("this document has changed since you were last here");
 else
  alert("this document has not changed");
}
//-->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!--
 //使用cookie时的一个工具类(面向对象,原型)
 //构造函数:用指定的名字和可选的性质为指定的文档创建一个cookie对象。
 //参数:
 //document:保存cookie的Document对象,必须的。
 //name:指定cookie名的字符串。必须的。
 //hours:一个可选的数字,指定从现在起到过期时间的小时数
 //path:一个可选的字符串,指定了cookie的路径性质
 //domain:一个可选的字符串,指定了cookie的域性质
 //secure:一个可选的布尔值,为true ,需要一个安全的cookie

 function Cookie(document, name, hours, path, domain, secure)
{
    // 该对象的所有预定义的属性都以'$'开头。
    // 这是为了与存储在cookie中的属性值区分开。
    this.$document = document;
    this.$name = name;
    if (hours)  //当字符串为空时,为false, 不为空时,为true
        this.$expiration = new Date((new Date()).getTime() + hours*3600000);
    else this.$expiration = null;
    if (path) this.$path = path; else this.$path = null;
    if (domain) this.$domain = domain; else this.$domain = null;
    if (secure) this.$secure = true; else this.$secure = false;
}

// 该函数是cookie对象的 store() 方法。
Cookie.prototype.store = function () {
    // 首先,遍历cookie对象的属性,并且将cookie值连接起来。
    // 由于cookie将等号和分号作为分隔符。
    // 所以我们使用冒号和&来分隔存储在单个cookie值中的状态变量。
    // 注意:我们对每个状态变量的值进行了转义,以防它含有标点符号或其它非法字符。
    var cookieval = "";
    for(var prop in this) {
        // 忽略所有名字以$开头的属性和所有方法(typeof的用法)
        if ((prop.charAt(0) == '$') || ((typeof this[prop]) == 'function'))
            continue;
        if (cookieval != "") cookieval += '&';
        cookieval += prop + ':' + escape(this[prop]);
    }

    // 既然我们已经有了cookie只,就可以连接完成的cookie串。
 //其中包括名字和创建cookie对象时指定的各种性质.
    var cookie = this.$name + '=' + cookieval;
    if (this.$expiration)
        cookie += '; expires=' + this.$expiration.toGMTString();
    if (this.$path) cookie += '; path=' + this.$path;
    if (this.$domain) cookie += '; domain=' + this.$domain;
    if (this.$secure) cookie += '; secure';

    // 下面设置Document.cookie属性来保存cookie 
    this.$document.cookie = cookie;
}


// 该函数是cookie对象的load()方法
Cookie.prototype.load = function() {
    // 首先得到属于该文档的所有cookie的列表,
    // 通过读Document.cookie属性可以实现这一点.
    var allcookies = this.$document.cookie;
    if (allcookies == "") return false;

    // 下面从该列表中提取已命名的cookie.
    var start = allcookies.indexOf(this.$name + '=');
    if (start == -1) return false;   // 该页未定义cookie
    start += this.$name.length + 1;  // 跳过名字和等号.
    var end = allcookies.indexOf(';', start);
    if (end == -1) end = allcookies.length;
    var cookieval = allcookies.substring(start, end);

    // 既然我们已经提取出了已命名的cookie 的值,就可以把它分割存储到状态变量名和值.
 // 名字/值对由&分隔,名字和值之间则由冒号分隔.
 //我们使用split()方法解析所有数据.
    var a = cookieval.split('&');//a 表示一个数组了    // 分隔成名字/值对.
    for(var i=0; i < a.length; i++)  // 把每对值存入数组.
        a[i] = a[i].split(':'); //a表示二维数组

    // 既然我们已经解析了cookie值
    // 就可以设置cookie对象中的状态变量的名字和值.
    // 注意我们对属性值调用了unescape(),因为存储它们时调用了escape()方法.
    for(var i = 0; i < a.length; i++) {
        this[a[i][0]] = unescape(a[i][1]);  //a[][]参数从0开始.
    }

    // 返回成功
    return true;
}

// 该函数是cookie对象的remove() 方法.
Cookie.prototype.remove = function() {
    var cookie;
    cookie = this.$name + '=';
    if (this.$path) cookie += '; path=' + this.$path;
    if (this.$domain) cookie += '; domain=' + this.$domain;
    cookie += '; expires=Fri, 02-Jan-1970 00:00:00 GMT';

    this.$document.cookie = cookie;  //原来的被覆盖了.
}

//-->
</SCRIPT>


<SCRIPT LANGUAGE="JavaScript">
<!--
//  使用该工具类的实例
var visitordata = new Cookie(document, "name_color_count_state", 240);   //240小时就是10天


if (!visitordata.load() || !visitordata.name || !visitordata.color) {
    visitordata.name = prompt("What is your name:", "");
    visitordata.color = prompt("What is your favorite color:", "");
}

// 跟踪这个用户访问了多少次该页面:
if (visitordata.visits == null) visitordata.visits = 0;
 visitordata.visits++;

visitordata.store();

document.write('<font size="7" color="' + visitordata.color + '">' +
               'Welcome, ' + visitordata.name + '!' +
               '</font>' +
               '<p>You have visited ' + visitordata.visits + ' times.');
//-->
</SCRIPT>

</HEAD>

<BODY>
<form>
<input type="button" value="Forget My Name" onclick="visitordata.remove();">
</form>
</BODY>
</HTML>

Coverity本地增量C/C++代码检查(Linux)操作简介 Coverity 是一款精确的综合静态分析与应用安全测试 (SAST) 平台,它可以在编写代码时发现关键的缺陷和安全缺陷,防止它们变成安全漏洞、故障或维护缺陷。 阅读详情

相关推荐

Halcon Socket TCP通讯:从算子调用到工业视觉系统集成

本文详细介绍了Halcon Socket TCP通讯在工业视觉系统中的应用与优化技巧。从基础算子调用到高并发处理,再到与PLC、机器人及MES系统的集成实战,提供了全面的解决方案和性能优化建议,帮助开发者高效实现工业视觉系统的通讯需求。

weixin_33502772的博客 248

JavaScript权威指南-总结

章2 词法结构 1.什么是字面量,标识符,保留字? 字面量即程序中的数据的值;标识符指数据的名字(字母、下划线_或美元符号$开头,为了和数值区分开,标识符不能用数字开头,);保留字是JS保留的某些可以使用的标识符,用来给自身使用,如null,if等。 2.什么是Unicode?(补充:什么是ASCII码?是一套电脑编码系统,可以用来表示大小写英文字母、数字和一些符号,到目前为止共定义了128个字符。) Unicode是一个编码规范,目前实际实现的unicode编码只要有三种:UTF-8,UCS-2.

LDLint的博客 1176

Unity Android平台下插件/SDK开发通用流程

本文主要面向对Android开发不甚了解的Unity开发者,介绍了基于最新的Android Studio的标准Android开发环境与项目结构的配置流程,在此基础上,开发者可以快速的进行SDK的接入与插件的开发。

ZhangDi2017的博客 1万+

JavaScript cookie存储和读取(一)

window.onload = function(){ /* cookie 是指Web浏览器存储的少量数据,同时它是与具体的Web页面或者站点相关的cookie最早是设计为被服务器端所用的。从底层来看,作为HTTP协议的一种拓展实现它。cookie数据会自动在Web浏览器和web 服务器之间传输,因此服务器端脚本就可以读、写存储在客户端的cookie值。本节将介绍客户端

新的启程的博客 4770

AD9253 LVDS 高速ADC驱动开发

对应:data clock时钟为500M DDR mode。具体内容:下文的参考博客写的很清楚,我就不详细写了。参考博客clock align模块不完整,本文新增这个模块。3、该款ADC工作在125Msps下,14bit - 2Lane - 1frame 模式。2、查阅Xilinx xapp524手册。1、查阅AD9253器件手册。

CAOXUN_FPGA的博客 2108

别再手动配IP了!保姆级教程:用Cisco Packet Tracer搞定DHCP服务器配置(附实验抓包分析)

本文提供了一份详细的Cisco Packet Tracer DHCP服务器配置教程,帮助用户告别手动分配IP的繁琐过程。通过构建多子网实验环境,逐步指导DHCP地址池设置、客户端测试及协议分析,并分享常见问题排查技巧,让网络配置更高效、更智能。

weixin_42535461的博客 337

js操作cookie的类

 function Cookie(delim){//操作Cookie类Array.prototype.splice=function(){var len=arguments.length,tarray=[],i=arguments[0]+arguments[1];if(len>1){while(ithis.length=arguments[0];if(len>2)for(var i=2;ivar 

阳光灿烂的日子 2798

软考高级架构师笔记-10数学计算题

专栏《软考高级架构设计师》更新了,本章列举了10个场景计算题的解法,温故而知新,大家快来卷一卷

java后端开发的博客,不仅仅是后端开发 1598

回顾js中的cookie/localstorage

1.首先简单总结下cookie cookie:可以做会话跟踪   特点: 1、大小限制(不能超过4k) 2、每个域下cookie不能超过50个 3、有效期(和设定时间有关),过了有效期cookie会自动删除 4、cookie读取(只能访问同一个域名下的cookie)(域的限制) 5、没有设置存储时间的cookie是临时coo...

bangguang6204的博客 330

PID、模糊PID、SkyHook、LQR、H2/H∞、ADRC等悬架控制合集

PID、模糊PID、SkyHook、LQR、H2/H∞等悬架控制合集

Mr.邹的博客 2013

实干派!网易易盾增强版滑块验证码,全方位讲解识别思路(含源码)

该验证码是异形滑块验证码中的一种,缺口旋转+偏移的处理需要你有很好的图像处理知识,能很好的处理透明通道,同时,该验证码需要你能很好的处理缺口和背景之间匹配的关系,该验证码的处理难点就是两个缺口之间如何找到正确的,两个检测框都有很强的相似度,且加上背景图的干扰,在图像处理和有优化上难度大大增加。

码王吴彦祖的博客 2015

[JavaScript] 常用JS脚本

打开F12,打开控制台Console,输入以下代码即可一键邀请。绑定动态ID:footer。

OxYGC 4594

银行一表通监管报送系统详解

国家金融监管总局对于“一表通”的总体描述为:通过建立一套明细级、标准化的数据体系和汇总计算规则,将银行机构传送至监管可信区的业务明细数据汇总生成财务指标、监管指标和监管报表,大幅提升监管数据时效性,统一数据标准,实现数据间的穿透和整合,同时改变机构多头报送数据模式,减轻机构报送负担。

银行信息系统应用架构详解 2517

《JavaScript权威指南》中的一个Cookie工具

《JavaScript权威指南》(第五版)中的一个Cookie工具,但是其中一处代码在IE下有问题,关掉所有IE窗口后cookie value没有保存。 原因是IE6,7,8,9都没有很好的支持max-age属性,所以针对IE使用expires属性代替。 以下是我修改后的代码。 Cookie.js [code="js"] function Cookie(name){ ...

林总的兔子洞 130

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

前端学习(5):javaScript权威指南第十章:cookie和其他客户存储技术

1.说出几种在客户端计算机上存储信息的方法?        方法:  (1)使用cookie                      (2)使用第三方插件,如Flash或Google Gears                      (3)要求用户在一个链接的资源上单击鼠标右键,然后将其保存到本地计算机上                      (4)插入一个作为链接的可下载文件

skyxmstar的博客 289

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

加密会话(ssl)cookie 中缺少 secure 属性_HTTP、会话管理、同源策略

最近在看《web应用安全权威指南》,将重点整理记录下备忘。强烈推荐~网上有pdf版Basic认证,该认证是无状态的,每次请求进行操作都会提供用户名和密码Cookie与会话管理,常见需求,比如用户登录后、购物网站购物车都是需要保持客户端的状态的。记忆认证状态的功能叫做会话管理,为了实现会话管理,Cookie出现了,Cookie相当服务器下达命令给浏览器,通过Set-Cookie响应头信息,让浏览器记...

weixin_32263265的博客 1124

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Public Suffix List完全指南:理解互联网域名的注册边界

Public Suffix List(公共后缀列表)是互联网基础设施中一个至关重要的组件,它定义了互联网用户可以注册域名的边界。这个看似简单的列表实际上支撑着浏览器安全、Cookie管理和域名系统(DNS)的许多关键功能。在本指南中,我们将深入探讨Public Suffix List的作用、工作原理以及如何正确使用它。 ## 什么是Public Suffix List?🤔 Public Su

gitblog_00835的博客 862

JavaScript进阶学习的一些建议

在理解了JavaScript的语法之后,不知如何去学习JavaScript了。在开发中遇到不少关于JavaScript的问题,解决了之后另有一翻感慨!推荐几本书吧:《JAVASCRIPT权威指南》,据说很好,第四版、第五版我都买了,加一起看过不超过100页,这本书实在不适合作为教程。它只适合在你迷茫的时候拿来参阅一下。《JAVASCRIPT DOM编程艺术》,很好的书,看完大概一半左右

cychai的专栏 859

Web开发基础: Javascript基础

1.完成《JavaScript 教程》学习:http://www.w3school.com.cn/js/index.asp 2.完成《JavaScript 测验》:http://www.w3school.com.cn/js/js_quiz.asp 3.完成《HTML DOM 教程》学习:http://www.w3school.com.cn/htmldom/index.asp 4.完成《JavaScript 实例》:http://www.w3school.com.cn/example/jseg_exam

lm19770429的专栏 178

JavaScript Cookie

Cookie 是服务器发送到用户浏览器并保存在本地的一小段文本数据,通常以名/值对形式存储,例如。浏览器会在后续请求中将 Cookie 发送回服务器,使基于无状态的 HTTP 协议能够记录稳定的状态信息。保持用户登录状态(如会话管理)。存储用户偏好设置(如语言选择)。跟踪用户行为(如广告跟踪)。在 JavaScript 中,开发者主要通过属性来操作 Cookie。需要注意的是,Cookie 的大小通常限制在 4KB,且每个域名下 Cookie 数量有限(通常 20-50 个,具体取决于浏览器)。

likuoelie的博客 1803

know-your-http-well 完全指南:10个核心知识点让你彻底掌握 HTTP 协议

在现代网络通信中,HTTP 协议扮演着至关重要的角色。无论是浏览网页、发送数据还是使用 API,我们都离不开 HTTP 的支持。**know-your-http-well** 作为一个全面的 HTTP 知识汇总项目,将 HTTP 头部、媒体类型、方法、关系和状态码等关键信息进行了系统整理,并链接到相关规范,为开发者和学习者提供了便捷的参考资源。 ## 1. 项目简介:一站式 HTTP 知识宝库

gitblog_01124的博客 845

JavaScript权威指南_155_第16章_脚本化CSS_16.5-脚本化CSS类

吴钦飞 772

javascript权威指南(第四版)

Java Script是一种功能强大的基于对象的脚本语言。Java Script程序可以直接嵌入HTML页面。与Web浏览器定义的文档对象模型(DOM)一起使用时,JavaScript可以创建动态HTML(DHTML)内容,允许用户与客户端的Web应用程序交互。 JavaScript语法以流行的程序设计语言C、C++和Java为基础,因此,经验丰富的程序设计人员可以很快地熟悉和掌握。此外,Ja

良子 1861

《JavaScript权威指南第四版》 电子版 电子书下载

JavaScript权威指南第四版图书评价:★★★★☆ 图书语言:简体图书 图书大小:19.11MB 图书格式:PDF图书作者:David Flanagan 更新日期:2006-05-23 下载次数:765394 压缩密码:中文图书解压缩密码:iTePub.Net图书简介: Java Script是一种功能强大的基于对象的脚本语言。Java Script程序可以直接嵌入HTML页面。与We

3550
上一篇: hibernate双向多对一映射文件写法:
下一篇: 利用样式表style实现会转动的按钮动画
danning
博客等级 码龄22年 5粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值