我有一个简单的“会话身份验证”机制:
我已阅读并理解,通过窃取Cookie来加密活动会话中的会话ID的人会窃取另一身份,因此,不应使用永久cookie。
仍然,即使我使用的cookie的有效期很短,盗窃仍然可能在其中发生。还有其他步骤可以避免此问题吗? 仅使用较短的到期日期(如果是这样,什么是适当的时间框架?)是合法的,还是有其他补充技术可以解决此问题?
答案 0 :(得分:0)
会话cookie的最佳做法是不设置过期时间,以使其对浏览器会话有效。如果设置了到期时间,则cookie将变为永久性,将被存储在客户端的磁盘上,依此类推-这样会增加总体风险。
您是正确的,任何拥有cookie的人都可以冒充用户。为避免这种情况,您希望将cookie设置为httpOnly
,以避免Javascript访问(XSS)和secure
,以便仅通过https发送。
尽管有很多方法可以纠正会话管理,但对会话ID进行加密似乎没有多大意义。加密的目的是什么?会话ID应该只是一个较大的随机数(可以编码为较短的字符串,但仍然是),无需加密。
关于会话管理的一般建议是不要自己实现它。陷阱太多了,几乎所有框架(或语言)都有可靠的实现,您可以合理地安全地使用它。很难避免所有潜在的漏洞。