当前位置: 首页 > 知识库问答 >
问题:

如何安全地存储会话ID

李云
2023-03-14

我是一名学习密码学的学生。在网上搜索之后,我仍然找不到问题的答案。我想知道如何为电子商务网站安全地存储会话ID。如果可能的话,怎么可能?请用外行的话解释一下。期待您的回答。

干杯

共有1个答案

唐兴思
2023-03-14

会话ID通常只是在客户端和服务器之间传递的随机(不透明)标识符。服务器使用标识符在数据库中查找状态信息(例如当前购物车内容)。

实际上,您必须相信客户端会保护会话id,因为一旦您将会话id发送给客户端,它就会变成一个静态令牌——再多的加密技术也无法修复这样一个事实,即任何人都可以提供会话id,然后假装是用户

您可以采取一些措施来缓解问题:

>

  • 确保您正在使用“足够安全”的随机生成器来构建令牌

    确保令牌的传输尽可能安全,以防窃听或客户端盗窃(例如,使用SSL、httponly和安全cookie标志)

    给令牌一个合理的超时时间,并要求用户使用刷新令牌或重新登录等方式定期请求新令牌。

    对于如何实际工作,已经有了很多想法——看看OAuth2/OpenID连接协议。

  •  类似资料:
    • 问题内容: 我目前正在使用MySql来存储我的会话。效果很好,但是有点慢。 我曾经被要求使用Redis,但是我想知道这是否是一个好主意,因为我听说Redis会延迟写入操作。我有点害怕,因为会话需要是实时的。 有没有人遇到过这样的问题? 问题答案: Redis非常适合存储会话。所有操作都在内存中执行,因此读和写将很快。 第二个方面是会话状态的持久性。Redis使您可以灵活地将会话状态持久化到硬盘。您

    • 问题内容: 除了是非持久性的并且仅限于当前窗口之外,会话存储与本地存储相比是否还有其他好处(性能,数据访问等)? 问题答案: localStorage和sessionStorage都扩展了Storage。除了的预期的“非持久性”外,它们之间没有区别。 也就是说,存储在中的数据将 一直保留到明确删除为止 。所做的更改将被保存,并且可用于当前和将来对该站点的所有访问。 对于, 更改仅在每个选项卡上可用

    • sessionStorage 会话存储 存储针对QQ帐号隔离 数据存储于内存中,当前游戏结束后被清空 函数 key( index ) 获取对应索引的key 手q 版本7.8.5 参数 参数名 类型 说明 index number 索引值 返回值 类型 说明 string 说明 示例 var stringKey = BK.sessionStorage.key(0); getItem( key )

    • 问题内容: 已锁定 。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 用PHP维护负责的会话安全性有哪些准则?网络上到处都有信息,现在是时候将它们全部集中在一个地方了! 问题答案: 为了确保会话安全,需要执行以下几项操作: 对用户进行身份验证或执行敏感操作时,请使用SSL。 只要安全级别发生更改(例如登录),就重新生成会话ID。如果愿意,您甚至可以为每个请求

    • 允许访问简单的加密和解密字符串,以便存储在本地机器上。 进程:主进程 此模块保护磁盘上存储的数据不被其他应用程序或拥有完全磁盘访问权的用户访问。 请注意,在Mac上,需要访问系统Keychain,这些调用可以阻止当前线程来收集用户输入。 如果密码管理工具可用,Linux 亦是如此。 方法 safeStorage 模块包含以下方法: safeStorage.isEncryptionAvailable

    • 问题内容: 我想知道如何在Android中安全存储 加密密钥 吗?保护加密和秘密密钥的最佳方案是什么? 问题答案: 根据您的评论,您需要使用适用于当前Android版本和旧Android版本的本地密钥对数据进行加密 Android Keystore 旨在生成和保护您的密钥。但是它不适用于18级以下的API级别,并且在API 23级之前有一些限制。 您将需要一个随机对称加密密钥,例如AES。AES密