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

How to store sensitive information on a hosting provider's servers?

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

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

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

不创建配置文件就无法启动。但是您可以加密数据库的数据。 以下是在 MySQL 8.0 中加密数据的几个简单步骤。此过程依赖于密钥环文件。这不符合合规性要求(请参阅下面的密钥管理系统),但这是良好的开端。

  • 检查您的 MySQL 版本。它应该是 MySQL 5.7 或 8.0。 Pre-load 您 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) 中的加密密钥。

希望本文对您有所帮助。