我想将数据库用作会话存储。我设计了一个包含3列的简单表: SessionID,Key,Value(会话ID和密钥将是主键)。
我的问题是我应该在将用户会话ID保存到表中之前对其进行加密吗?在我看来,我应该这样做,因为它可以阻止某人(有访问数据库)看到活动的会话ID。
答案 0 :(得分:1)
您可以加密会话,但这不是标准做法。通常,数据库受到良好保护,只有Web /应用程序服务器才能访问它。
此外,由于会话应该会过期(并且超时),即使访问过时,损害也会减少到一小段时间。
如果你决定加密会话ID,它应该相当容易,特别是如果你有一个面向对象的方法。您只需加密持久层附近的会话即可。
更常见的问题是将会话ID从线路中嗅出。确保您在客户端/浏览器和应用程序/ Web服务器之间强制使用HTTPS以防止这种情况发生。
此外,您可以在任何严肃的操作上再次请求密码,以进一步缓解会话劫持问题。