关于Cookie的一些思考和理解

 我来答
世纪网络17
2022-07-28 · TA获得超过5952个赞
知道小有建树答主
回答量:2426
采纳率:100%
帮助的人:143万
展开全部
关键词: cookie 安全性 GDPR

Cookie,是站点为了访客的一些信息来区分用户(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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式