使用PHPmyAdmin加密/解密MySQL数据库

时间:2017-05-21 20:47:34

标签: php mysql database encryption phpmyadmin

我想知道你是否可以帮助我。我一直致力于一个项目,在我的教堂里存储有关志愿者的信息。它全部通过控制面板进行管理,这很好,因为可以设置用户名,密码和权限,以便某些人可以访问系统。但是,我们确实有一些人可以访问cPanel并使用PHPmyAdmin。有没有办法加密存储的所有信息,使其在PHPmyAdmin上无法读取,然后解密,以便您可以在控制面板上查看它?

我们会将姓名,地址,联系信息(如数字和电子邮件)存储在未来的银行帐户详细信息中,并且不希望任何访问PHPmyAdmin的人都能阅读其中任何一个。

Thans:)

1 个答案:

答案 0 :(得分:2)

观察:您建议在您的系统中存储个人身份信息。如果您存储银行帐户详细信息,入侵者将能够对记录其信息的人员进行身份盗用和银行欺诈。这非常危险。如果我可以说是一个既是牧师又是计算机程序员的人,我强烈建议你不要这样做。你的教会成员以这种方式将他们置于风险之中是不公平的。电子邮件,姓名,地址?好。这与您发布的目录中的内容相同。但要注意儿童的姓名,性别和年龄。

无论如何,要获得教会领导对这个项目的认可。您不需要对此承担全部责任。

我感谢您尝试将您的个人信息隐藏在您的员工和志愿者中,而这些人员和志愿者并不需要知道这些信息。教会工作中有一些关于避免诱惑的东西:-),你正在帮助它。好。

但是:你最危险的威胁不是你的员工和志愿者谁能看到你的phpMyadmin页面。这是网络犯罪分子。如果有人破解你的系统,他们可能会破解你的“控制面板” - 你的网络应用程序。如果他们这样做,那么您是否加密了这些银行帐号并不重要。要使您的Web应用程序使用该数据,它将需要密钥来解密该数据。网络犯罪分子知道如何找到那些东西。 (严肃地参见Matthew 10:16.。)

设置多个MySQL帐户,最好为每个访问您数据库的不同人员设置一个帐户。使用phpMyadmin的用户管理页面执行此操作。 https://docs.phpmyadmin.net/en/latest/privileges.html

然后授予每个用户访问她允许查看的数据库和表的权限。要防止用户查看表,请不要授予她该表的SELECT权限。

您也可以使用普通SQL执行此操作。它看起来像这样:

CREATE USER 'JackTheTeacher'@'*' IDENTIFIED BY 'secret-password';
GRANT SHOW DATABASES  ON *.* TO  'JackTheTeacher'@'*';
GRANT INSERT, UPDATE, DELETE  ON `mydb`.`students` TO 'JackTheTeacher'@'*';

CREATE USER 'SallyTreasurer'@'*' IDENTIFIED BY 'another-secret-password';
GRANT SHOW DATABASES  ON *.* TO  'SallyTreasurer'@'*';
GRANT INSERT, UPDATE, DELETE  ON `mydb`.`pledges` TO 'SallyTreasurer'@'*';
GRANT INSERT, UPDATE, DELETE  ON `mydb`.`donations` TO 'SallyTreasurer'@'*';

FLUSH PRIVILEGES;

这个例子授予Jack在使用phpMyAdmin时操纵students表的权利。它还授予Sally访问pledgesdonations表的权限。这些只是向您展示如何使用细粒度GRANT操作的示例。

您还可以生成某些列的内容。但是在这方面存在一种虚假的安全感,因为你的网络应用程序需要密钥来解密它所使用的列,而你的网络应用程序可能是破解你的系统的最简单途径。