Php 加密的MySQL数据,具有不同的用户编号访问权限
我正在考虑一种将个人数据存储在MySQL数据库中的方法,MySQL数据库通过PHP应用程序进行访问,允许具有不同密码的多个用户访问,并能够添加和删除用户 我最初的想法是使用AES对数据库中的数据进行加密,以便可以对其进行解密和读取,但我不确定的是如何允许具有不同密码的多个用户访问它,因为据我所知,只有一个解密密钥 我唯一的想法是为用户建立一个普通的登录系统,这样他们就可以被添加和删除,但是将解密密码存储在服务器上,这样用户就永远不会看到它。将解密密码存储在服务器上的想法似乎不安全,因此我正在寻找更好的解决方案 我相信这是很多其他人都遇到过的问题,我也四处搜索过,但除非我误解了一些事情,否则我发现的唯一解决方案适用于一定数量的用户,而不是在添加和删除用户的情况下 或者我现在的做法不是最好的,有没有更好的办法 同时也定义了我所考虑的安全防范措施。如果服务器被黑客入侵&数据库被盗,小偷将无法读取数据,阻止不再被允许查看数据的人访问数据以及添加新用户 谢谢你的帮助, 尼尔。是的,密钥(解密数据的密码)必须存储在服务器上。Php 加密的MySQL数据,具有不同的用户编号访问权限,php,mysql,encryption,Php,Mysql,Encryption,我正在考虑一种将个人数据存储在MySQL数据库中的方法,MySQL数据库通过PHP应用程序进行访问,允许具有不同密码的多个用户访问,并能够添加和删除用户 我最初的想法是使用AES对数据库中的数据进行加密,以便可以对其进行解密和读取,但我不确定的是如何允许具有不同密码的多个用户访问它,因为据我所知,只有一个解密密钥 我唯一的想法是为用户建立一个普通的登录系统,这样他们就可以被添加和删除,但是将解密密码存储在服务器上,这样用户就永远不会看到它。将解密密码存储在服务器上的想法似乎不安全,因此我正在寻找
不幸的是,这是无法避免的 不过,有不同的方法可以做到这一点 您可以将其以纯文本文件的形式存储在用户访问区之外的某个文件夹中,只有
root
系统用户才能在该文件夹中获取它
您可以使用一组单独的密钥将其存储在另一个单独的数据库中
您可以让脚本从服务器上的其他脚本/应用程序获取密钥(或第二个数据库凭据),从而提高反透明度。如果有人可以访问第一个脚本,他可能无法访问另一个脚本
最后,您可以将其存储在网络深处的其他地方,这是最复杂但最安全的东西,称为KMS
-密钥管理服务器
实际上,KMS不一定是云服务或昂贵的企业解决方案(尽管它是最安全的方式)。它可能只是“战区”(独立网络)之外的另一台服务器,它只存储和“告知”信任服务器的密钥
我可以写一本约300页的关于密钥管理的书,因为我监督过许多符合PCI DDS3安全标准的非常敏感的数据项目。您可以在谷歌上搜索密钥管理
,并尝试查找一些简单的教程和方案。是的,密钥(用于解密数据的密码)必须存储在服务器上。不幸的是,这是无法避免的 不过,有不同的方法可以做到这一点 您可以将其以纯文本文件的形式存储在用户访问区之外的某个文件夹中,只有
root
系统用户才能在该文件夹中获取它
您可以使用一组单独的密钥将其存储在另一个单独的数据库中
您可以让脚本从服务器上的其他脚本/应用程序获取密钥(或第二个数据库凭据),从而提高反透明度。如果有人可以访问第一个脚本,他可能无法访问另一个脚本
最后,您可以将其存储在网络深处的其他地方,这是最复杂但最安全的东西,称为KMS
-密钥管理服务器
实际上,KMS不一定是云服务或昂贵的企业解决方案(尽管它是最安全的方式)。它可能只是“战区”(独立网络)之外的另一台服务器,它只存储和“告知”信任服务器的密钥
我可以写一本约300页的关于密钥管理的书,因为我监督过许多符合PCI DDS3安全标准的非常敏感的数据项目。您可以在谷歌上搜索密钥管理
,并尝试查找一些简单的教程和方案。是的,密钥(用于解密数据的密码)必须存储在服务器上。不幸的是,这是无法避免的 不过,有不同的方法可以做到这一点 您可以将其以纯文本文件的形式存储在用户访问区之外的某个文件夹中,只有
root
系统用户才能在该文件夹中获取它
您可以使用一组单独的密钥将其存储在另一个单独的数据库中
您可以让脚本从服务器上的其他脚本/应用程序获取密钥(或第二个数据库凭据),从而提高反透明度。如果有人可以访问第一个脚本,他可能无法访问另一个脚本
最后,您可以将其存储在网络深处的其他地方,这是最复杂但最安全的东西,称为KMS
-密钥管理服务器
实际上,KMS不一定是云服务或昂贵的企业解决方案(尽管它是最安全的方式)。它可能只是“战区”(独立网络)之外的另一台服务器,它只存储和“告知”信任服务器的密钥
我可以写一本约300页的关于密钥管理的书,因为我监督过许多符合PCI DDS3安全标准的非常敏感的数据项目。您可以在谷歌上搜索密钥管理
,并尝试查找一些简单的教程和方案。是的,密钥(用于解密数据的密码)必须存储在服务器上。不幸的是,这是无法避免的 不过,有不同的方法可以做到这一点 您可以将其以纯文本文件的形式存储在用户访问区域之外的某个文件夹中,其中只有
root