如何在托管服务提供商的服务器上存储敏感信息?

问题描述

我正在为我的网站使用托管人的单一共享托管。 我已经创建了一个MysqL数据库,并且需要在我的PHP api端点中访问用户名密码。因此,我创建了一个具有/config.PHP权限的-rw-r--r--文件

<?PHP
    define("dbHost","localhost");
    define("dbUsername","XXXXXXXXX");
    define("dbPassword","XXXXXXXXX");
?>

这是存储此类信息的好方法吗?

解决方法

不创建配置文件就无法开始。但是您可以加密数据库的数据。 以下是在MySQL 8.0中加密数据的一些简单步骤。此过程依赖于密钥环文件。这不能满足合规性要求(请参阅下面的“密钥管理系统”),但这是很好的第一步。

  • 检查您的MySQL版本。它应该是MySQL 5.7或8.0。 将插件预加载到您的my.cnf中:early-plugin-load = keyring_file.so

执行以下查询:

  1. INSTALL PLUGIN keyring_udf SONAME ‘keyring_udf.so’;
  2. CREATE FUNCTION keyring_key_generate RETURNS INTEGER SONAME ‘keyring_udf.so’;
  3. SELECT keyring_key_generate(‘alongpassword’,‘DSA’,256);
  4. ALTER TABLE titles ENCRYPTION = ‘Y’;

每个文档警告: keyring_file和keyring_encrypted文件插件不旨在用作法规遵从性解决方案。 PCI,FIPS等安全性标准要求使用密钥管理系统来保护,管理和保护密钥库或硬件安全模块(HSM)中的加密密钥。

我希望本文对您有用。