当前位置: 首页 > news >正文

Cookie、 Local Storage、 Session Storage三种客户端存储方式

存储特性对比表

特性CookieLocal StorageSession Storage
生命周期可设置过期时间永久保存会话结束自动清除
存储容量4KB左右5-10MB5-10MB
自动发送到服务器每次HTTP请求头携带不发送不发送
访问方式服务端/客户端均可读写仅客户端仅客户端

使用场景及示例

1. Cookie - 用户身份验证
// ASP.NET Core 中设置登录Cookie
public IActionResult Login()
{var cookieOptions = new CookieOptions {Expires = DateTime.Now.AddDays(7),HttpOnly = true,  // 防止XSS攻击Secure = true     // 仅HTTPS传输};Response.Cookies.Append("AuthToken", "加密的令牌", cookieOptions);return RedirectToAction("Dashboard");
}

适用场景:保持登录状态、跟踪用户会话

2. Local Storage - 用户偏好设置
// 在Razor视图中嵌入JavaScript初始化设置
<script>
// 保存主题偏好
function saveTheme(theme) {localStorage.setItem('userTheme', theme);applyTheme(theme);
}// 初始化时读取
const savedTheme = localStorage.getItem('userTheme') || 'light';
applyTheme(savedTheme);
</script>

适用场景:保存长期用户设置(主题、语言)、缓存静态资源

3. Session Storage - 表单暂存
// MVC控制器返回包含恢复表单的视图
public IActionResult Checkout()
{ViewBag.SessionId = HttpContext.Session.Id;return View();
}// 视图中的恢复逻辑
<script>
// 页面加载时恢复草稿
window.addEventListener('load', () => {const formData = sessionStorage.getItem('checkoutForm');if(formData) {document.getElementById('address').value = JSON.parse(formData).address;}
});// 实时保存表单内容
document.querySelector('form').addEventListener('input', (e) => {const formData = {address: document.getElementById('address').value,payment: document.getElementById('payment').value};sessionStorage.setItem('checkoutForm', JSON.stringify(formData));
});
</script>

适用场景:多步骤表单暂存、单页面应用状态保持

安全建议

  1. 敏感数据应存储加密后的值,例如:
    e n c r y p t e d D a t a = A E S E n c r y p t ( k e y , " 原始数据 " ) encryptedData = AES_{Encrypt}(key, "原始数据") encryptedData=AESEncrypt(key,"原始数据")
  2. Cookie建议设置:
    new CookieOptions {SameSite = SameSiteMode.Strict,Domain = ".yourdomain.com",Path = "/",// 其他安全设置...
    }
    
  3. Web Storage使用时需防范XSS攻击:
    // 对存储内容进行转义
    const safeContent = DOMPurify.sanitize(userInput);
    localStorage.setItem('comment', safeContent);
    

根据数据敏感性选择存储方式:身份验证建议用HttpOnly Cookie,非敏感设置可用Local Storage,临时工作数据适合Session Storage。

相关文章:

Cookie、 Local Storage、 Session Storage三种客户端存储方式

存储特性对比表 特性CookieLocal StorageSession Storage生命周期可设置过期时间永久保存会话结束自动清除存储容量4KB左右5-10MB5-10MB自动发送到服务器每次HTTP请求头携带不发送不发送访问方式服务端/客户端均可读写仅客户端仅客户端 使用场景及示例 1. Cookie - 用户身份…...

进程等待简单讲解

1. 基本概念 1.1 进程终止与退出状态 当一个进程终止时&#xff0c;它会向其父进程发送一个信号&#xff08;通常是SIGCHLD&#xff09;&#xff0c;并保存退出状态&#xff08;exit status&#xff09;。退出状态可以是一个正常终止的返回值&#xff0c;也可以是一个信号导致…...

基于大模型预测胸椎管狭窄诊疗全流程的研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 1.3 研究方法与数据来源 二、胸椎管狭窄症概述 2.1 疾病定义与分类 2.2 病因与发病机制 2.3 流行病学特征 三、大模型技术原理与应用现状 3.1 大模型基本原理 3.2 在医疗领域的应用案例 3.3 用于胸椎管狭窄…...

Oracle OCP认证考试考点详解083系列15

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 71. 第71题&#xff1a; 题目 解析及答案&#xff1a; 关于在 Oracle 18c 及更高版本中基于 Oracle 黄金镜像的安装&#xff0c;以下哪…...

【老飞飞源码】新版高清飞飞源码+数据库+客户端+服务器端完整文件打包

【老飞飞源码】新版高清飞飞源码数据库客户端服务器端完整文件打包下载 编译环境 vs2022 搭建环境 sql2022 测试运行环境 windows 11 本地测试生成搭建都成功 功能包含&#xff1a; pvp排行榜 宠物特效 箱子预览系统 vip系统 宝箱系统 内挂系统 离线摆摊系统 特效帽子系…...

Maven 动态插件配置:Profile的灵活集成实践

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

Python爬虫如何应对网站的反爬加密策略?

在当今的互联网环境中&#xff0c;网络爬虫已经成为数据采集的重要工具之一。然而&#xff0c;随着网站安全意识的不断提高&#xff0c;反爬虫技术也越来越复杂&#xff0c;尤其是数据加密策略的广泛应用&#xff0c;给爬虫开发者带来了巨大的挑战。本文将详细介绍Python爬虫如…...

STM32H743输出50%的占空比波形

使用cubeMX进行配置如下&#xff1a; 时钟配置如下&#xff1a; 具体代码如下&#xff1a; /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program b…...

ios remote debut proxy 怎么开启手机端调试和inspect

手机开启远程调试教程&#xff08;适用于 Chrome / Safari&#xff09; 前端移动端调试指南&#xff5c;适用 iPhone 和 Android&#xff5c;WebDebugX 出品 本教程将详细介绍如何在 iPhone 和 Android 手机上开启网页检查器&#xff0c;配合 WebDebugX 实现远程调试。教程包含…...

GraspVLA:基于Billion-级合成动作数据预训练的抓取基础模型

25年5月来自银河通用&#xff08;Galbot&#xff09;、北大、港大和 BAAI 的论文“GraspVLA: a Grasping Foundation Model Pre-trained on Billion-scale Synthetic Action Data”。 具身基础模型因其零样本泛化能力、可扩展性以及通过少量后训练即可适应新任务的优势&#x…...

BGP联邦实验

一.需求 1.AS1存在两个环回&#xff0c;一个地址为192.168.1.0/24&#xff0c;该地址不能再任何协议中宣告 AS3存在两个环回&#xff0c;一个地址为192.168.2.0/24&#xff0c;该地址不能再任何协议中宣告 AS1还有一个环回地址为10.1.1.0/24&#xff0c;AS3另一个环回地址是…...

自动化测试基础知识详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 自动化测试是指利用自动化工具和脚本&#xff0c;模拟人工操作进行软件测试的过程。它在软件开发中扮演着非常重要的角色&#xff0c;可以提高测试效率、降低成本…...

Java后端快速生成验证码

Hutool是一个小而全的Java工具类库&#xff0c;它提供了很多实用的工具类&#xff0c;包括但不限于日期处理、加密解密、文件操作、反射操作、HTTP客户端等。 核心工具类&#xff1a;CaptchaUtil&#xff0c;CaptchaUtil 是 Hutool 提供的一个工具类&#xff0c;用于创建各种类…...

【愚公系列】《Manus极简入门》036-物联网系统架构师:“万物互联师”

&#x1f31f;【技术大咖愚公搬代码&#xff1a;全栈专家的成长之路&#xff0c;你关注的宝藏博主在这里&#xff01;】&#x1f31f; &#x1f4e3;开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主&#xff01; &#x1f…...

主流高防服务器技术对比与AI防御方案实战

1. 高防服务器核心能力对比 当前市场主流高防服务商&#xff08;如阿里云、腾讯云、华为云&#xff09;的核心防御能力集中在流量清洗与静态规则防护&#xff0c;但面临以下挑战&#xff1a; 静态防御瓶颈&#xff1a;传统方案依赖预定义规则&#xff0c;对新型攻击&#xff…...

带格式的可配置文案展示

方案一&#xff08;格式包含颜色换行等&#xff09; 服务端&#xff1a;配置后接口输出带标签的字符串&#xff0c;但是尖括号不能被转义前端&#xff1a;v-html接受字符串&#xff08;vue项目&#xff09;&#xff0c;原生用innerHTML赋值 方案二&#xff08;格式针对只存在…...

湖南大学3D场景问答最新综述!3D-SQA:3D场景问答助力具身智能场景理解

作者&#xff1a; Zechuan Li, Hongshan Yu, Yihao Ding, Yan Li, Yong He, Naveed Akhtar 单位&#xff1a;湖南大学&#xff0c;墨尔本大学&#xff0c;悉尼大学&#xff0c;安徽大学 论文标题&#xff1a;Embodied Intelligence for 3D Understanding: A Survey on 3D Sce…...

【PyTorch】深度学习实践——第二章:线性模型

参考&#xff1a;刘二老师的《PyTorch深度学习实践》完结合集 本章实现了一个简单的线性回归模型&#xff0c;用于学习输入x和输出y之间的线性关系(yw*x)。 一、代码细节 1.数据准备 x_data [1.0, 2.0, 3.0] y_data [2.0, 4.0, 6.0]定义了训练数据&#xff0c;x和y之间显然…...

【Python 中文编码】

在 Python 中处理中文编码问题时&#xff0c;需重点关注文件编码声明、字符串编码转换及环境配置。以下是分步指南和最佳实践&#xff1a; 一、Python 3 的默认编码行为 Python 3.x&#xff1a;默认使用 UTF-8 编码&#xff08;与 Python 2.x 的 ASCII 默认编码不同&#xff0…...

Excel宏和VBA

Excel宏和VBA&#xff08;Visual Basic for Applications&#xff09;是自动化Excel操作的强大工具&#xff0c;可帮助用户批量处理数据、自定义功能、提升效率。以下是详细使用方法及示例&#xff1a; --- ### **一、基础操作** #### 1. **录制宏** - **步骤**&#xff1…...

1688 API 接口使用限制

在使用 1688 API 接口时&#xff0c;需要注意以下几方面的限制和注意事项&#xff0c;以确保合规使用并避免不必要的问题。 一、调用频率限制 1688 平台对 API 接口的调用频率通常有限制&#xff0c;以防止滥用和对服务器造成过大压力。具体限制如下&#xff1a; 免费版&…...

5. 动画/过渡模块 - 交互式仪表盘

5. 动画/过渡模块 - 交互式仪表盘 案例&#xff1a;数据分析仪表盘 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style type"text/css">.dashboard {font-family: Arial…...

数据擦除标准:1-Pass vs. 3-Pass vs. 7-Pass有什么区别,哪个更好?

虽然像美国国防部(DoD)5220.22-M这样的旧标准提倡多次覆盖,但像NIST 800-88和新兴的IEEE 2883标准这样的新指南已经改变了对数据擦除效果的看法。在这篇博客中,我们解释了不同的擦除方法,并分析了旧标准在新时代是否仍然相关。 理解数据擦除方法 数据擦除包括用0、1或随…...

MySQL推荐书单:从入门到精通

给大家介绍一些 MySQL 从入门到精通的经典书单&#xff0c;可以基于不同学习阶段的需求进行选择。 入门 MySQL必知必会 这本书继承了《SQL必知必会》的优点&#xff0c;专门针对 MySQL 用户&#xff0c;没有过多阐述数据库基础理论&#xff0c;而是紧贴实战&#xff0c;直接从…...

Rodrigues旋转公式-绕任意轴旋转

Rodrigues旋转公式 给定旋转轴单位向量 k ( k x , k y , k z ) \mathbf{k}(k_x,k_y,k_z) k(kx​,ky​,kz​)和旋转角度 θ \theta θ&#xff0c;旋转矩阵 R R R可以表示为&#xff1a; R I sin ⁡ θ K ( 1 − cos ⁡ θ ) K 2 RI\sin \theta K(1-\cos \theta)K^2 RIsin…...

【大模型面试每日一题】Day 17:解释MoE(Mixture of Experts)架构如何实现模型稀疏性,并分析其训练难点

【大模型面试每日一题】Day 17&#xff1a;解释MoE&#xff08;Mixture of Experts&#xff09;架构如何实现模型稀疏性&#xff0c;并分析其训练难点 &#x1f4cc; 题目重现 &#x1f31f;&#x1f31f; 面试官:解释MoE&#xff08;Mixture of Experts&#xff09;架构如何…...

Datawhale 5月coze-ai-assistant 笔记1

课程地址&#xff1a; coze-ai-assistant-课程摘要 | Datawhalehttps://www.datawhale.cn/learn/summary/105 动手实践 链接&#xff1a;https://www.coze.cn/home 作业&#xff1a;智能体链接地址扣子扣子是新一代 AI 大模型智能体开发平台。整合了插件、长短期记忆、工作…...

2025.5.13总结

想要成为自己想要成为的那个人&#xff0c;并不是一件容易的事情。在我报口才课的时候&#xff0c;老师一针见血的指出了我的不足。因为不敢&#xff0c;所以不做&#xff0c;因为不去做&#xff0c;所以不会&#xff0c;而正因为不会&#xff0c;也导致了你不敢。当我听到这个…...

spring中的@Async注解详解

一、核心功能与作用 Async 是Spring框架提供的异步方法执行注解&#xff0c;用于将方法标记为异步任务&#xff0c;使其在独立线程中执行&#xff0c;从而提升应用的响应速度和吞吐量。其主要作用包括&#xff1a; 非阻塞调用&#xff1a;主线程调用被标记方法后立即返回&…...

计算机视觉----时域频域在图像中的意义、傅里叶变换在图像中的应用、卷积核的频域解释

1、时域&#xff08;时间域&#xff09;——自变量是时间,即横轴是时间,纵轴是信号的变化。其动态信号x&#xff08;t&#xff09;是描述信号在不同时刻取值的函数。 2、频域&#xff08;频率域&#xff09;——自变量是频率,即横轴是频率,纵轴是该频率信号的幅度,也就是通常说…...

分布式链路跟踪

目录 链路追踪简介 基本概念 基于代理&#xff08;Agent&#xff09;的链路跟踪 基于 SDK 的链路跟踪 基于日志的链路跟踪 SkyWalking Sleuth ZipKin 链路追踪简介 分布式链路追踪是一种监控和分析分布式系统中请求流动的方法。它能够记录和分析一个请求在系统中经历的每…...

从数据中台到数据飞轮:实现数据驱动的升级之路

从数据中台到数据飞轮&#xff1a;实现数据驱动的升级之路 随着数字化转型的推进&#xff0c;数据已经成为企业最重要的资产之一&#xff0c;企业普遍搭建了数据中台&#xff0c;用于整合、管理和共享数据&#xff1b;然而&#xff0c;近年来&#xff0c;数据中台的风潮逐渐减退…...

深入解析Java序列化:从使用到原理

在此之前&#xff0c;对于 Java 中的序列化&#xff0c;我一直停留在使用层面 —— 把需要序列化在网络上传输的类实现Serializable接口就可以了 但对于这块知识点&#xff0c;随着工作年限的提升&#xff0c;我觉得必须要好好研究下它了&#xff0c;不能似懂非懂的只知道使用。…...

Python面向对象编程(OOP)深度解析:从封装到继承的多维度实践

引言 面向对象编程(Object-Oriented Programming, OOP)是Python开发中的核心范式&#xff0c;其三大特性——​​封装、继承、多态​​——为构建模块化、可维护的代码提供了坚实基础。本文将通过代码实例与理论结合的方式&#xff0c;系统解析Python OOP的实现机制与高级特性…...

传输层:UDP协议

1.UDP协议特点 2.UDP报文格式 如下&#xff1a; 校验和的计算&#xff1a; 3.例子 UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;是一种无连接的传输层协议&#xff0c;其报文格式简单高效&#xff0c;适用于对实时性要求高但允许少量丢包的…...

使用WebStorm打断点调试Vue项目

1&#xff1a;打开WebStorm&#xff0c;先配置vue启动的服务&#xff0c;如下 2&#xff1a;如果上面的选择第4步空白&#xff0c;&#xff0c;就先启动过vue项目&#xff0c;或者在packege.json启动过&#xff0c;就可以直接添加npm服务 3&#xff1a;使用Debug启动项目 4&…...

AI助力:零基础开启编程之旅

一、代码调试 三步解决BUG 1. 错误信息翻译 指令模板&#xff1a; 错误诊断模式我遇到【编程语言】报错“粘贴报错信息“ 请&#xff1a; 用小白能懂的话解释问题本质标注可能引发该错误的三个场景给出最可能的修复方案和其他备选方案 2. 上下文分析 进阶指令 结合上下文代…...

信息学奥赛一本通 1535:【例 1】数列操作

【题目链接】 ybt 1535&#xff1a;【例 1】数列操作 【题目考点】 1. 树状数组 【解题思路】 本题为树状数组模板题&#xff0c;维护区间和&#xff0c;进行单点修改&#xff0c;区间查询。 详细讲解见&#xff1a;洛谷 P3374 【模板】树状数组 1&#xff08;树状数组解法…...

MQTT协议详解:物联网通信的轻量级解决方案

MQTT协议详解&#xff1a;物联网通信的轻量级解决方案 引言 在物联网(IoT)快速发展的今天&#xff0c;设备间高效可靠的通信变得至关重要。MQTT(Message Queuing Telemetry Transport)作为一种轻量级的发布/订阅协议&#xff0c;已成为物联网通信的首选解决方案。本文将深入探…...

【时时三省】(C语言基础)使用字符串处理函数

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 在C函数库中提供了一些用来专门处理字符串的函数&#xff0c;使用方便。几乎所有版本的C语言编译系统都提供这些函数。下面介绍几种常用的函数。 ①puts函数 输出字符串的函数 其一般形式…...

工具学习_VirusTotal使用

VirusTotal Intelligence 允许用户在其庞大的数据集中进行搜索&#xff0c;以查找符合特定条件的文件&#xff0c;例如哈希值、杀毒引擎检测结果、元数据信息、提交时的文件名、文件结构特征、文件大小等。可以说&#xff0c;它几乎是恶意软件领域的“谷歌搜索引擎”。 网页使…...

Linux下mysql的安装与远程链接

linux安装mysql 01下载依赖&#xff1a; 找到网址/download下&#xff1a; 最下面MySQL Community&#xff08;mysql社区版&#xff09; 选择MySQL Community Server 选择对应的mysql版本 操作系统版本选择 根据操作系统的版本选择具体版本号 下载离线版本 安装包详情 0…...

WebpackVite总结篇与进阶

模块化 Webpack Webpack 入口entry 分离app和第三方库入口 这是什么&#xff1f; 这是告诉 webpack 我们想要配置 2 个单独的入口点&#xff08;例如上面的示例&#xff09;。 为什么&#xff1f; 这样你就可以在 vendor.js 中存入未做修改的必要 library 或文件&#xff0…...

数据工具:数据同步工具、数据血缘工具全解析

目录 一、数据同步工具 &#xff08;一&#xff09;数据同步工具的定义与基本原理 &#xff08;二&#xff09;数据同步工具的类型 &#xff08;三&#xff09;数据同步工具的应用场景 二、数据血缘工具 &#xff08;一&#xff09;数据血缘工具的定义与作用 &#xff0…...

贪吃蛇游戏排行榜模块开发总结:从数据到视觉的实现

一、项目背景与成果概览 在完成贪吃蛇游戏核心玩法后,本次开发重点聚焦于排行榜系统的实现。该系统具备以下核心特性: 🌐 双数据源支持:本地存储(localStorage)与远程API自由切换 🕒 时间维度统计:日榜/周榜/月榜/全时段数据筛选 🎮 模式区分:闯关模式(关卡进度…...

亚远景-基于ASPICE的汽车供应链质量管控培训

以下是一份基于ASPICE的汽车供应链质量管控培训的介绍&#xff1a; 培训目标 理解ASPICE核心概念&#xff1a;帮助学员全面掌握ASPICE的框架结构、最新版本的更新内容&#xff0c;深入理解过程评估模型和参考模型的实际应用。 提升开发过程成熟度&#xff1a;通过培训&#x…...

【工作记录】Kong Gateway 入门篇之部署及简单测试

Kong Gateway部署 Kong Gateway 可以通过多种方式部署&#xff0c;包括 Docker、Kubernetes、以及直接安装在操作系统上。以下是常见的部署方法&#xff1a; 使用 Docker 部署 安装 Docker 和 Docker Compose。创建一个 docker-compose.yml 文件&#xff0c;内容如下&#x…...

【Qt】之音视频编程1:QtAV的背景和安装篇

QtAV 背景与核心概念 1. 什么是 QtAV&#xff1f; QtAV 是一个基于 Qt 框架 和 FFmpeg 的多媒体播放库&#xff0c;旨在为 Qt 应用程序提供高性能、跨平台的音视频播放、处理及渲染功能。它封装了 FFmpeg 的底层编解码能力&#xff0c;并通过 Qt 的图形系统&#xff08;如 QM…...

Centos7安装部署wordpress个人博客保姆级教程

目录 关闭防火墙修改yum镜像源安装 php安装mysql安装nginx关闭SELinux配置nginx转发php文件到fpm服务下载wordpress与配置 centos: 7 php:8.1.29 wordpress:6.8.1 nginx:1.26.1 mysql:5.6.51 关闭防火墙 # 停止防火墙 systemctl stop firewalld # 禁止开启启动 systemctl …...

Python-简单网络编程 I

目录 一、UDP 网络程序1. 通信结构图2. Python 代码实现1&#xff09;服务器端2&#xff09;客户端 3. 注意 二、TCP 网络程序1. 通信结构图2. Python 代码实现1&#xff09;服务器端2&#xff09;客户端 3. 注意 三、文件下载1. PyCharm 程序传参1&#xff09;图形化界面传参2…...