JavaScript cookie原理及使用实例


Posted in Javascript onMay 08, 2020

什么是cookie?

cookie 是本地计算机的临时存储。

作用:在浏览器中进行数据的存储,用户名、密码(比如:保存页面信息,自动登录等)。

特点:

  • cookie需要在服务器环境下运行;
  • cookie的容量在4kb左右,限制为每个域名50个cookie个数(IE),不同浏览器容量和个数不同;
  • cookie以字符串类型存储,不同域名存储的数据是无法共享;
  • cookie默认是临时存储的,当浏览器关闭时,自动销毁;
  • cookie可以被禁用也可以删除,且安全性不高。
  • 可以对cookie值进行加密(MD5);

读取和设置cookie

document.cookie = "user=123456";
console.log(document.cookie); //user=123456

使用f12查看当前页面存储的cookie

JavaScript cookie原理及使用实例

注意:

在打开网址时或者提交表单时自动裹挟着cookie数据发送到服务器,并且服务端程序可以 继续裹挟着新的cookie内容存储在你的电脑的cookie中。

设置cookie的生存期

格式:document.cookie = “名称=值;expires=” + 时间;(时间必须是一个字符串)。

var date=new Date();
date.setHours(date.getHours()+1);//设置1小时的生存期
// document.cookie="a=3"; //先存入a=3,只运行第一次
console.log(document.cookie);
var a=Number(document.cookie.split("=")[1]);
a++;
document.cookie="a="+a+";expires="+date.toUTCString();

上面代码表示:设置cookie在当前时间的一个小时后过期,第一次运行先存入a为3的值,然后把cookie的值从字符串转为数值型,再进行累加,每次设置生存期都要把data对象转为字符串类型(toUTCString)。

在生存期内的cookie,关闭页面不会销毁,生存期结束,关闭页面销毁cookie;

cookie存储多个数据

var obj={
      user:"xietian",
      age:30,
      sex:"男"
    }
    function setCookie(obj,date){
      for(var prop in obj){
        document.cookie=prop+"="+obj[prop]+(date ? ";expires="+date.toUTCString() : "");
      }
    }
    var date=new Date();
    date.setFullYear(2021); 
    setCookie(obj,date);

使用reduce获取多个cookie值

var o=getCookie();
   console.log(o);
    function getCookie(){
      return document.cookie.split("; ").reduce((value,item)=>{
          var arr=item.split("=");
          value[arr[0]]=isNaN(arr[1]) ? arr[1] : Number(arr[1]);//数字(年龄)需要转为数值型
          return value;
      },{});
    }

关于cookie安全

XSS攻击:XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序(百度百科)。

XSS攻击需要具备的条件:

1. 必须是同一个域当中页面的表单提交,必须有文本内容提交

2. 提交的内容需要被放置在页面中,例如评论等内容

3. 在提交的文本中出现script标签,并且这个标签没有被替代,直接放入在页面中

4. 这个页面可以被所有用户查看到

5. 这个script标签具备一定的盗窃cookie特征

解决办法

提交页面时将script标签过滤再提交;

但可以通过插入图片的超链接,点击是执行JavaScript脚本; 遇到这种时就需要将JavaScript脚本替换

关于cookie安全还要其他攻击方式这里只简单介绍一下cookie,深入了解请上网查询资料。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 利用Image对象实现的埋点(某处的点击数)统计
Dec 28 Javascript
JS代码同步文本框内容的实例方法
Jul 12 Javascript
在HTML中插入JavaScript代码的示例
Jun 03 Javascript
JS实现图片高亮展示效果实例
Nov 24 Javascript
jquery插件格式实例分析
Jun 16 Javascript
详解VUE的状态控制与延时加载刷新
Mar 27 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
Jul 13 Javascript
VUE实现可随意拖动的弹窗组件
Sep 25 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
Jan 09 Javascript
简单两步使用node发送qq邮件的方法
Mar 01 Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 Javascript
解决vue字符串换行问题(绝对管用)
Aug 06 Javascript
JavaScript中的各种宽高属性的实现
May 08 #Javascript
element-ui 实现响应式导航栏的示例代码
May 08 #Javascript
JS控制下拉列表左右选择实例代码
May 08 #Javascript
VSCode搭建React Native环境
May 07 #Javascript
Javascript查看大图功能代码实现
May 07 #Javascript
用VsCode编辑TypeScript的实现方法
May 07 #Javascript
JavaScript交换变量的常用方法小结【4种方法】
May 07 #Javascript
You might like
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
ios中视频的最后一桢问题解决
2019/05/14 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
Python进行数据科学工作的简单入门教程
2015/04/01 Python
python生成随机图形验证码详解
2017/11/08 Python
python list转矩阵的实例讲解
2018/08/04 Python
python程序控制NAO机器人行走
2019/04/29 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
文职个人求职信范文
2013/09/23 职场文书
药学专业大学生自荐信
2013/09/28 职场文书
有趣的广告词
2014/03/18 职场文书
本科生求职信
2014/06/17 职场文书
租车协议书范本2014
2014/11/17 职场文书
邀请函的格式
2015/01/30 职场文书
行政复议答复书
2015/07/01 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
一封真诚的自荐信帮你赢得机会
2019/05/07 职场文书
德劲DE1108畅想
2021/04/22 无线电