cookie 简介
发布日期:2022-02-08 04:20:59 浏览次数:5 分类:技术文章

本文共 2801 字,大约阅读时间需要 9 分钟。

什么是 Cookie?

1、先看看度娘怎么说的:cookie (储存在用户本地终端上的数据)。

2、有兴趣的话,可以再看看runoob.com中的详细介绍:

Cookie 是一些数据, 存储于你电脑上的文本文件中。

当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。
Cookie 的作用就是用于解决 “如何记录客户端的用户信息”:当用户访问 web 页面时,他的名字可以记录在 cookie 中。在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。
Cookie 以键 / 值对形式存储,如下所示:username=sky 。
当浏览器从服务器上请求 web 页面时, 属于该页面的 cookie 会被添加到该请求中。服务端通过这种方式来获取用户的信息。

3、然后听听我怎么说。

网站的安全策略不允许向我们的电脑上保存任何内容,但可以通过cookie来向本地存储一些信息。cookie只能是文本,存储在被默认允许的位置,一般根据当前网站(域名)进行存储,另外还针对路径(域名下的文件夹)来进行存储。

说到安全策略了,那就说说中病毒这个事儿。安全策略直白的讲,就是为了打开网页,而不中病毒才有的。 安全策略要求不向电脑上存储信息,所以上任何网站都没有任何病毒,因为病毒不会自动存储在自己电脑上,而直接爆发。中病毒则是因为下载了不该下载的东西,下载是自己同意的,不是浏览器的默认行为。如果直接下载zip、exe文件也不会中病毒,除非你打开了这些文件,可能就会中病毒。因而,如果下载txt文本文件,百分之百不中病毒。

稍稍总结一下cookie:

(1)cookie根据域名、路径存储(区分方式也是根据这两项)。

(2)只能存储文本信息。
(3)只存储在指定的位置,不能随意改变位置。
(4)cookie后来都做了加密处理(为了保密),所以现在无法直接找到cookie文件内容。
(5)cookie只能做临时存储,如果彻底关闭浏览器,数据将丢失。
(6)cookie一般存储当前登录的状态。
(7)有的时候,cookie可以允许访问一些数据,但会暴露我们的隐私。
(8)清除cookie:清除浏览器内容。
(9)cookie存储的数据类型: 字符串。
(10)cookie不同的域名是不能访问的(不能跨域访问)。
(11)cookie以键值对的方式存储,比如:document.cookie=“user=sky”; 。

拿百度举个例子。我们在浏览一些页面时,一些用户信息就被存储在百度的cookie中,然后在其他网站的广告部分,如果有百度的广告区域,就能在其他网站的广告部分完成精准投放。

cookie的创建与获取

1、cookie的创建

在JavaScript中,可以通过cookie名和值的方式来创建cookie。一个网站可以创建多个cookie,不同的cookie可以拥有不同的值。例如将用户名和密码存在cookie中,那么就有可能用到两个cookie:一个cookie用于存放用户名,另一个cookie用于存放密码。使用Document对象的cookie属性可以用来设置与读取cookie。

document.cookie = “username=value”;

2、cookie的获取

使用document对象的cookie属性可以获得的cookie,准确点说应该是可以获得cookie文件的内容。事实上cookie文件中存放的就是一个字符串,而这个字符串包含了当前网站目录下的所有cookie的名字和值。因此,在获取指定的cookie时,还需要使用String对象中的方法才能获得需要的cookie值。

document.cookie;//console.log(document.cookie);

cookie的生存期

在默认情况下,cookie是临时存在的,当浏览器关闭时,会自动销毁。在一个浏览器窗口打开时,可以设置cookie,只要该浏览器窗口没有关闭,cookie就一直有效,而一旦浏览器窗口关闭后,cookie也就随之消失。如果想要cookie在浏览器窗口之后还能继续使用,就需要为cookie设置一个生存期。所谓生存期也就是cookie的终止日期,在这个终止日期到达之前,浏览器都可以读取该cookie。一旦终止日期到达之后,该cookie将会从cookie文件中删除。

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

var date=new Date();date.setMinutes(5);//设置5分钟后过期document.cookie="user=sky;expires="+date.toUTCString();//转化成世界时  expires-到期的意思console.log(document.cookie);//获取

5分钟后,消失在cookie列表中。

在这里插入图片描述
在这里插入图片描述

cookie使用,主要用于前后端不分离(会跳转页面的);如果用于前后端分离,则在使用Ajax发送时,发送方式是不同的。

前后端不分离时,cookie会被自动携带发送到服务端,若通信,cookie会随着访问自动往返发送。
cookie内容不能存储太多。
如果是ajax发送,cookie不会自动携带发送。
所以可以这么理解:如果用ajax发送,就不用担心被XSS偷了。

XSS攻击

全称跨站脚本攻击。XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。会造成其他用户的cookie内容被盗走,比如可以登录我们的站点,转走一些东西。

一些浏览器做的比较好,比如谷歌浏览器,能自动防XSS攻击。

XSS攻击实现:需要向web页面注入恶意代码;这些恶意代码能够被浏览器成功的执行。

(1)必须是允许用户输入文本内容的情况,并且能将输入的文本的内容发送到服务器;
(2)服务器必须存储了发过来的文本内容,并且将文本内容展示在页面中;
(3)这个文本内容必然包括了script脚本,在用户打开页面时这段script脚本被执行;
这样就可以将当前用的cookie盗取后发送到指定的服务器存储。

如何解决这类问题:

(1)文本内容提交前将script用正则提取出来转义(替换为任何其他非脚本文字),然后在发送给服务器;
(2)服务器在返回客户端存储时,生成的页面需要做判断处理,查看是否有XSS攻击,然后转义处理(检测script标签);
(3)还需要判断所有提交标签中href中是否含有JavaScript内容,也要做转义(检测超链接)。

盗用者用脚本 (检测script标签) 白搭后,不用脚本,钻超链接的空子,(没有检测超链接),看下面截图自行理解。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

转载地址:https://blog.csdn.net/weixin_43297321/article/details/104278022 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:jsonp简介
下一篇:localStorage 简介

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月26日 07时24分58秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章