cookie中数据无法读取,HttpOnly属性

摘要:
HttpOnly字段cookie的httponly属性。但是setcookie第七个属性就是设置httponly的,设置后无法通过js脚本获取Cookie名称(必填)Cookie名称必须使用只能用在URL中的字符,一般用字母及数字,不能包含特殊字符,如有特殊字符想要转码。Secure(非必填)安全性,指定Cookie是否只能通过https协议访问,一般的Cookie使用HTTP协议既可访问,如果设置了Secure(没有值),则只有当使用https协议连接时cookie才可以被页面访问HttpOnly(非必填)如果在Cookie中设置了"HttpOnly"属性,那么通过程序将无法读取到Cookie信息。

新接手一个项目。项目用户登陆之后用户信息,token是后端保存在前端的cookie里面的。基于此开发。

在开发中,遇到的问题是浏览器手动刷新之后,用户掉线需要重新登陆问题。在此基础上,开始解决bug。

一开始我以为是 vuex 中数据没有持久化保存到 session ,导致用户信息丢失,后来仔细检查之后刷新一瞬间是有用户信息在 session 的。并不是 数据没有保存。

后来又仔细研究路由之后发现代码问题。是在路由守卫beforeEach 中出现的问题。

cookie中数据无法读取,HttpOnly属性第1张

代码93行,getToken 因为是通过 cookie 获取的 token ,没有获取到 token 才导致运行的 next('/') 正常刷新应该是走 98 行代码,让他运行本地存储中的东西,而不是跳转首页登录。

因为 token 是后端保存在前端的。保存时候设置的属性HttpOnly 。

HttpOnly字段 cookie的httponly属性。若此属性为true,则只有在http请求头中会带有此cookie的信息,而不能通过 document.cookie 来访问此 cookie。这样能有效的防止XSS攻击。窃取cookie内容,这样就增加了cookie的安全性

cookie中数据无法读取,HttpOnly属性第2张

不能通过任何 js 脚本获取这个值,只能看得到,但是你获取不到,

setcookie 一般用法就是 key,value,这两个属性。

但是setcookie 第七个属性就是设置 httponly 的,设置后无法通过 js 脚本获取

Cookie名称(必填)Cookie名称必须使用只能用在URL中的字符,一般用字母及数字,不能包含特殊字符,如有特殊字符想要转码。如js操作cookie的时候可以使用escape()对名称转码。
Cookie值(必填)Cookie值同理Cookie的名称,可以进行转码和加密。
Expires(非必填)过期日期,一个GMT格式的时间,当过了这个日期之后,浏览器就会将这个Cookie删除掉,当不设置这个的时候,Cookie在浏览器关闭后消失。
Path(非必填)一个路径,在这个路径下面的页面才可以访问该Cookie,一般设为“/”,以表示同一个站点的所有页面都可以访问这个Cookie。
Domain(非必填)子域,指定在该子域下才可以访问Cookie,例如要让Cookie在a.test.com下可以访问,但在b.test.com下不能访问,则可将domain设置成a.test.com。
Secure(非必填)安全性,指定Cookie是否只能通过https协议访问,一般的Cookie使用HTTP协议既可访问,如果设置了Secure(没有值),则只有当使用https协议连接时cookie才可以被页面访问
HttpOnly(非必填)如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息。

免责声明:文章转载自《cookie中数据无法读取,HttpOnly属性》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇键盘虚拟键值编码表 使用keybd_Eventnm命令详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Shiro权限管理框架(二):Shiro结合Redis实现分布式环境下的Session共享

本篇是Shiro系列第二篇,使用Shiro基于Redis实现分布式环境下的Session共享。在讲Session共享之前先说一下为什么要做Session共享。 首发地址:https://www.guitu18.com/post/2019/07/28/44.html 为什么要做Session共享 什么是Session 我们都知道HTTP协议(1.1)是无状...

如何设计安全的用户登录功能

用户登录功能是Web应用系统具备的最基本的功能,关系到用户数据和应用系统数据的安全,设计一个安全的用户登录功能,涉及到以下几个方面的内容。 (一) 老生常谈——口令 1. 口令长度与复杂度限制 限制用户输入一些非常容易被破解的口令,比如qwert、asdfg、123456、password之类的,参考twitter和 facebook的设计,为这样的口令做...

HTTP协议详解(深入理解)

版权声明:本文为CSDN博主「有抱负的小狮子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_38087538/article/details/82838762 引入 超文本传输协议(HTTP,HyperText Transfer Protocol...

漫谈单点登录(SSO)

1. 摘要 ( 注意:请仔细看下摘要,留心此文是否是您的菜,若浪费宝贵时间,深感歉意!!!) SSO这一概念由来已久,网络上对应不同场景的成熟SSO解决方案比比皆是,从简单到复杂,各式各样应有尽有!开源的有OpenSSO、CAS ,微软的AD SSO,及基于kerberos 的SSO等等……这些优秀的解决方案尽显开发及使用者的逼格,当然需求所致无谓好坏高...

localStorage兼容方案

localStorage是H5的存储方案,各大浏览器支持都相当不错,唯一悲催的就是IE,这个浏览器界的另类总是显得格格不入。 IE “Internet选项”->“安全”中有一个“启动保护模式”的单选项,在选中的情况下localStorage是无法使用的,直接提示“拒绝访问”,就算不勾选,下次打开IE时也很有可能弹出“是否启用保护模式”的提示,此时除了...

详解 cookie(待补充)

前言: 本来是学习跨域的问题,结果看到一篇文章时,提到了cookie,工作这么多年,可是自己却无法进行述说.说明自己的学习是无效的,费尔曼学习技巧,只想去弄懂他. 1.什么是cookie,cookie的作用 2.cookie的工作机制,即cookie是运行流程 3.cookie的基本属性(4个),如何去使用cookie 一.什么是cookie http协议...