我想知道你是否可以帮助我。我一直致力于一个项目,在我的教堂里存储有关志愿者的信息。它全部通过控制面板进行管理,这很好,因为可以设置用户名,密码和权限,以便某些人可以访问系统。但是,我们确实有一些人可以访问cPanel并使用PHPmyAdmin。有没有办法加密存储的所有信息,使其在PHPmyAdmin上无法读取,然后解密,以便您可以在控制面板上查看它?
我们会将姓名,地址,联系信息(如数字和电子邮件)存储在未来的银行帐户详细信息中,并且不希望任何访问PHPmyAdmin的人都能阅读其中任何一个。
Thans:)
答案 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访问pledges
和donations
表的权限。这些只是向您展示如何使用细粒度GRANT
操作的示例。
您还可以生成某些列的内容。但是在这方面存在一种虚假的安全感,因为你的网络应用程序需要密钥来解密它所使用的列,而你的网络应用程序可能是破解你的系统的最简单途径。