在PHP环境中存储用于加密的私钥的位置

 117942101-brsh 发布于 2023-02-11 15:36

在我的数据库中,我存储了通过PHP类动态加密和解密的信息.

每个应用程序我使用附加用户密钥的私钥,以确保只有当用户尝试解密自己的数据时才能成功解密.

用户'密钥'存储在数据库中; 但私钥(应用程序级别)存储为FS中的txt文件.当然,在"网络根"之上.

注意事项: - 如果数据库被黑客入侵:他们最终得到密钥的一部分和加密数据 - 如果PHP停止或损坏:他们最终只有一个页面,只有include('../private/private.php')在其中.
- 如果NGINX失败:连接"正好"掉线.

我能想到的唯一场景是系统本身的腐败.但是服务器运行防火墙,定期更新,运行fail2ban,只运行所需的服务.SSH只能通过密钥访问等登录

我想知道这是否是"最佳"做法.或者,如果有更好的方法来执行上述规范的这种加密?密钥文件的正确访问权限是什么?

目前,数据库和网络服务器都在面向互联网的同一台服务器上.拆分它们并创建一个只有Web服务器的面向Internet的服务器是否更好; 并将数据库服务器和密钥文件放在专用网络中的其他服务器上?

编辑:加密数据的私钥由两个组件构成:
$key = $app_key . $user_key

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有