cookie

cookie

cookie有什么用?

首先想象一个场景,当我们打开一个网站的时候,如果这个网站我们曾经登录过,你会发现,我们再次打开这个网站的时候,不需要再次登录,类似于b站,csnd

这些是怎么做到的呢?

其实,就是浏览器保存了我们的cookie,里面记录了一些信息,当然,这些cookie是服务端创建好然后返回给浏览器,浏览器再进行保存!

cookie的表示

cookie通常是以键值对的形式(key-value)进行保存,例如name=jack,这个cookie的名字就是name,所携带的值就是jack,如果要存入对象的话,要使用JSON.stringify()将对象转换成字符串!

cookie常用属性的解释

Domian域名
path路径
expires过期时间
size大小
HttpOnly是否能在客户端拿到cookie
HttpOnly

1.会话cookie中缺少HttpOnly属性会导致攻击者可以通过程序(JS脚本、Applet等)获取到用户的cookie信息,造成用户cookie信息泄露,增加攻击者的跨站脚本攻击威胁。

2.HttpOnly是微软对cookie做的扩展,该值指定cookie是否可通过客户端脚本访问。Microsoft Internet Explorer 版本 6 Service Pack 1 和更高版本支持cookie属性HttpOnly。

3.如果在Cookie中没有设置HttpOnly属性为true,可能导致Cookie被窃取。窃取的Cookie可以包含标识站点用户的敏感信息,如ASP.NET会话ID或Forms身份验证票证,攻击者可以重播窃取的Cookie,以便伪装成用户或获取敏感信息,进行跨站脚本攻击等。

4.如果在Cookie中设置HttpOnly属性为true,兼容浏览器接收到HttpOnly cookie,那么客户端通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这将有助于缓解跨站点脚本威胁。

cookie的常见设置

//路径的设置
document.cookie="name=jack;path=/155-cookie/aaa"


//过期时间的设置---注意时间是以utc标准的
  var date = new Date()
            date.setMinutes(date.getMinutes()+10)
            document.cookie = `username=kerwin;expires=${date.toUTCString()}`
            
            
            
            
//获取cookie的值
document.cookie  //如果想要进一步实现获取,需要自己封装功能

//删除cookie---思路:直接将cookie的过期时间设为以前的
     var date = new Date()
            date.setMinutes(date.getMinutes()-1)
            document.cookie = `username=111;expires=${date.toUTCString()}`
            document.cookie = `age=111;expires=${date.toUTCString()}`

cookie的特点

cookie的特点

  1. 只能存储文本
  2. 单条存储有大小限制4KB左右
    数量限制(一般浏览器,限制大概在50条左右)
  3. 读取有域名限制:不可跨域读取,只能由来自 写入cookie的 同一域名 的网页可进行读取。简单的讲就是,哪个服务器发给你的cookie,只有哪个服务器有权利读取
  4. 时效限制:每个cookie都有时效,默认的有效期是,会话级别:就是当浏览器关闭,那么cookie立即销毁,但是我们也可以在存储的时候手动设置cookie的过期时间
  5. 路径限制:存cookie时候可以指定路径,只允许子路径读取外层cookie,外层不能读取内层。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值