【发布时间】:2013-12-06 05:37:17
【问题描述】:
我想使用数据库作为会话存储。我设计了一个包含 3 列的简单表格: SessionID、Key、Value(Session ID & Key 为主键)。
我的问题是我应该在将用户会话 ID 保存到表中之前对其进行加密吗?在我看来,我应该这样做,因为它可以防止某人(有权访问数据库)看到活动会话 ID。
【问题讨论】:
标签: security session encryption
我想使用数据库作为会话存储。我设计了一个包含 3 列的简单表格: SessionID、Key、Value(Session ID & Key 为主键)。
我的问题是我应该在将用户会话 ID 保存到表中之前对其进行加密吗?在我看来,我应该这样做,因为它可以防止某人(有权访问数据库)看到活动会话 ID。
【问题讨论】:
标签: security session encryption
您可以加密会话,但这不是标准做法。通常,数据库受到很好的保护,只有 Web/应用程序服务器能够访问它。
此外,由于会话应该过期(并超时),因此即使访问过,也会将损害减轻到一个很小的时间窗口内。
如果您决定对会话 ID 进行加密,这应该相当容易,尤其是在您采用面向对象的方法时。您可以简单地在持久层附近加密会话。
一个更常见的问题是会话 ID 被从网络中嗅出。确保您在客户端/浏览器和应用程序/Web 服务器之间强制使用 HTTPS 以防止这种情况发生。
此外,您可以在任何严重操作中再次请求密码,以进一步缓解会话劫持问题。
【讨论】: