Cookie、Session、LocalStorage 与 SessionStorage的区别

本文详细比较了Cookie、Session、LocalStorage与SessionStorage的特点与应用场景,涵盖了大小限制、有效性、安全性等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cookie、Session、LocalStorage 与 SessionStorage的区别

localStorage 和 sessionStorage属于H5新特性

localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理

特性CookieSessionlocalStoragesessionStorage
大小< 4KB大小没有限制< 5M< 5M
有效期一般由服务器生成,可设置失效时间(保存在硬盘中);如果在浏览器端生成Cookie,默认是关闭浏览器后失效(保存在内存中)第一列文本居中永久有效(除非主动删除数据)仅在当前回话、当前页面有效;窗口或标签页关闭后清除
安全性XSS跨站脚本攻击安全性更高
存储内容只能保存字符串类型,以文本的方式可含有多个对象复杂对象用JSON对象的stringify和parse来处理
与服务器端通信每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题仅在客户端(即浏览器)中保存,不参与和服务器的通信
主要用途保存登录信息搜索历史记录保存

Cookie、localStorage 和 sessionStorage容易造成XSS跨站脚本攻击

XSS跨站脚本攻击方式

因为只要打开控制台,你就随意修改它们的值,如果你的网站中有 XSS 的风险,千万不要用它们存储你系统中的敏感数据(例如:账号、密码、邮箱)。

1、盗用cookie,获取敏感信息。
2、利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。

XSS攻击主要是由程序漏洞造成的,要完全防止XSS安全漏洞主要依靠程序员较高的编程能力和安全意识,当然安全的软件开发流程及其他一些编程安全原则也可以大大减少XSS安全漏洞的发生。这些防范XSS漏洞原则包括:

(1)不信任用户提交的任何内容,对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、REFER、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。尽量采用POST而非GET提交表单;对“<”,“>”,“;”,“””等字符做过滤;任何内容输出到页面之前都必须加以en-code,避免不小心把htmltag显示出来。

(2)实现Session 标记(session tokens)、CAPTCHA(验证码)系统或者HTTP引用头检查,以防功能被第三方网站所执行,对于用户提交信息的中的img等link,检查是否有重定向回本站、不是真的图片等可疑操作。

(3)cookie 防盗。避免直接在cookie中泄露用户隐私,例如email、密码,等等;通过使cookie和系统IP绑定来降低cookie泄露后的危险。这样攻击者得到的cookie没有实际价值,很难拿来直接进行重放攻击。

(4)确认接收的内容被妥善地规范化,仅包含最小的、安全的Tag(没有JavaScript),去掉任何对远程内容的引用(尤其是样式表和JavaScript),使用HTTPonly的cookie。

更多解释可参考cookies、session、sessionStorage和localStorage解释及区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值