在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进行本地访问.