关于Cookie的一些思考和理解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Cookie的一些思考和理解相关的知识,希望对你有一定的参考价值。
参考技术A 关键词: cookie 安全性 GDPRCookie,是站点为了访客的一些信息来区分用户(Identifier)或者传递信息,特别是在big data的现在,更有利于站点site对用户行为和地区倾向进行大数据分析,也可以为推荐系统做前期的基础数据训练集。
一般存在浏览器目录中的文本文件中
前面我们说了Cookie一般存在浏览器目录中的文本文件中,并且会根据domain分开存放,比如,当你输入jianshu.com的时候,浏览器会向jianshu发送一个request,然后server根据request来返回response,把结果在显示器中显示,当你发送这个request的时候,浏览器会寻找当前浏览器目录中是否存在jianshu.com的相关cookie,如果有,浏览器会把Cookie文件中的数据放在request header中一起向server发送,服务器收到Cookie数据,服务器会根据你的cookie信息做一些相应的处理,比如第一次访问的话,会为你创建一个新的session id,否者来检测你是否需重新登录等等操作。
主要包括server、expires、name、value、secure、httpOnly、path,其中服务器只想知道name和value字段,其余的字段有的为了存储,有的为了安全性
比如在chrome下打开 jianshu.com ,F12 -> Application -> Cookies -> https://www.jianshu.com
分为两种:第一种在前端对cookie进行操作,以chrome为例子,可以直接在console里边对cookie进行修改,例如我们将 default_font 改成 Simplified (当然这只是举个例子,至于修改完重新发送请求到jianshu server之后会不会有作用,这个取决于jianshu server),F12 -> Console,输入:
注意:name、domain、path一定要对应正确,这里的cookie domain为 www.jianshu.com ,所以不需要显式设置,结果如下:
第二种是后端服务器操作,可以直接在response上面进行操作,你可以直接抹掉某个cookie
这个时候回来的response header就不会带default_font这个cookie了
也可以修改已存在的cookie过期时间或者加入新的cookie,nodejs的application可以使用cookie.js
这个时候浏览器就会接受到一个包含cookie为my_cookie=my_value,并且过期时间为一个星期的response。
首先可能有两个问题
注意一下domain和path,必须完全对应可以设置,比如你要修改某一个cookie,修改的时候必须指定与其一样的domain和path才可以生效,否者不生效,另外,当前域不可以写其他域的cookie,子域名除外。
既然cookie这么容易修改,毕竟cookie输入个人信息,容易获取,就容易被利用,那么我们自然而然会想到安全性问题,这里我能想到的有四种方式,在 后端服务器 对cookie进行适当的处理,可以提高cookie的安全性:
** 文章所有步骤都是经过实践检验并可行,若有问题,下方请评论。
——END——
作者 : Eason ,专注各种技术、平台、集成,不满现状,喜欢改改改
文章、技术合作
Email : eason.lau02@hotmail.com
以上是关于关于Cookie的一些思考和理解的主要内容,如果未能解决你的问题,请参考以下文章