gpt4 book ai didi

php - 在 php session 中存储安全用户数据的最佳方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 21:37:54 25 4
gpt4 key购买 nike

我正在用 PHP 编写一个私有(private)消息系统,用于安全的加密通信。

每次用户注册帐户时,我都会使用 phpseclib 创建一个新的 RSA 私钥,并使用用户的密码在 AES 中对其进行加密,这将是在数据库中安全地存储散列和盐渍。

每次用户使用他的密码登录时,他也应该解锁他的私钥并在运行中维护它。

此脚本显然旨在仅在 SSL 连接下运行。

问题是我需要在用户 session 中维护私钥的非加密版本,以确保他能够阅读每条消息和编写新消息,而无需在每次刷新页面时插入密码。

存储在 PHP session 中不是一个安全的解决方案,因为 PHP session 仍然存储在服务器上并且可能被破坏。

将其存储在Cookie中不是一个好的解决方案,因为Cookie很容易被盗(但通过这种方式我将用户的命运掌握在自己手中)。

是否可以使用 ajax 在 PHP 变量(而不是 Session)中维护 key 并且从不刷新页面而是使用 ajax 获取和写入消息?还是有更好的解决方案?

提前致谢。

最佳答案

假设您拥有完全控制权并且可以限制对数据库的访问/可见性,您可以将 session 数据的存储从文件存储切换为使用数据库作为 session 存储。这当然假设您的数据库足够安全以满足您的需求。您可以在此处查看有关如何设置 php 以将 session 存储到数据库的详细概述:http://www.stanford.edu/dept/its/communications/webservices/wiki/index.php/How_to_use_MySQL-based_sessions

假设您不需要在数据库重启时保留 session 数据,您还可以将 session 存储表的存储引擎设为 MEMORY 而不是 Innodb 或 MyISAM。这将使它变得非常活泼,并避免您可能担心 session 数据以未加密状态存在于磁盘上的数据库文件中。

关于php - 在 php session 中存储安全用户数据的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14859515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com