asp.net – 加密cookie中的会话ID(或其他身份验证值)是否有用?

在Web开发中,当启用会话状态时,会话ID存储在cookie中(在cookieless模式下,将使用查询字符串).在asp.net中,会话ID自动加密.互联网上有很多关于你应该如何加密你的cookie的话题,包括会话ID.我可以理解为什么要加密私人信息(如DOB),但任何私人信息都不应该存储在cookie中.因此,对于其他cookie值,例如会话ID,目的加密是什么?它会增加安全性吗?无论你如何保护它,它都会被送回服务器进行解密.

更具体,

出于认证目的,

>关闭会话,我不想再处理会话超时了
>在cookie中存储某种id值,
>在服务器端,检查id值是否存在并匹配(如果是),验证用户身份.
>这样,当浏览器会话结束时,让cookie值到期.

VS

Asp.net表单身份验证机制(我认为它依赖于会话或会话ID)

后者提供更好的安全性吗?

解决方法

对Session Hijacking等会话的攻击旨在获得有效的会话ID.如果您现在要加密会话ID,攻击者只会瞄准加密的会话ID,您就没有任何优势.因此加密会话ID是没用的.请记住,会话ID只是用于标识会话的随机值.攻击者不需要知道该随机值是否具有某些特定含义;他们只需要知道随机值.

如果要保护会话安全,请使用HTTPS通过SSL加密整个HTTP通信,并仅使用标志设置cookie

>安全只允许通过HTTPS发送cookie
> HttpOnly禁止通过JavaScript进行本地访问.

相关文章

项目要求通过网站上传大文件,比如视频文件,通过摸索实现了文件分片来上传,然后后台进行合并。 使用了...
安装新版本的Nginx(vim /etc/yum.repos.d/nginx.repo) [nginx-stable] name=nginx stable repo baseu...
什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功...
在Windows下使用Docker,我们选择Docker Desktop这个软件,非常方便。 ## Docker Desktop介绍及安装 Do...
项目开始设计的是运行在windows下,所以一开始采用的是windows服务模式来获取多媒体文件信息,后来要求...
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主...