php - 最佳实践:如果用户上传密钥文件会(更)安全吗?
问题描述
现在,存储在我的(MariaDB-)数据库中的用户数据是加密的(AES)。每当用户发布或编辑数据时,数据都会被加密;40 位以上的加密密钥是使用用户帐户随机创建的,然后存储在由 .htaccess 文件保护的额外文件夹中的文件中。因此,即使数据库被泄露,攻击者也不应该看到任何明文数据——除非攻击者还获得了对存储在同一服务器上的密钥文件的控制权。
我的问题是:如果用户每次登录后都必须上传密钥文件进行加密,会不会更安全?最后一个文件路径可以存储并在输入字段中使用,因此这样做时至少有基本的舒适度。
应该是这样的: 1. 用户 -> 登录 2. 如果登录确认:下一步将密钥文件从本地计算机上传到服务器 3. 服务器 -> 确认密钥文件 4. 确认的密钥文件将被临时加密加密密钥并存储在 $_SESSION 变量中,该变量将在 30 分钟不活动后过期。
当然,这种方法不如只登录那么舒服,但我认为万一服务器出现安全漏洞(?)会更安全。
解决方案
推荐阅读
- html - 如何让标题在悬停时轻松进出?
- javascript - 如何以特定的时间间隔运行函数一定次数
- java - 在 Collection Interface 方法中 boolean equals(Object obj) 是否有任何 Object obj 有资格作为参数或只有 Collection c 有资格作为参数?
- java - 在android中的onactivityresult之后GoogleMaps为空
- django - django中的模板变量
- java - 为什么“mvn clean install”在多模块项目中失败,而“mvn test”有效?
- autodesk-forge - Autodesk.Forge.DerivativesApi.GetManifest(urn) 失败状态
- sas - “if first.col3”是什么意思?Sas企业指南
- python - Python 的“StandardScaler”和“LabelEncoder”以及“fit”和“fit_transform”不适用于包含浮点数和字符串的 CSV
- c# - 更新数据库后如何将属性添加到实体框架模型类而不丢失它们