如何在托管服务提供商的服务器上存储敏感信息?
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
执行以下查询:
INSTALL PLUGIN keyring_udf SONAME ‘keyring_udf.so’;
CREATE FUNCTION keyring_key_generate RETURNS INTEGER SONAME ‘keyring_udf.so’;
SELECT keyring_key_generate(‘alongpassword’, ‘DSA’, 256);
ALTER TABLE titles ENCRYPTION = ‘Y’;
根据文档警告:
keyring_file 和 keyring_encrypted 文件插件并非旨在作为法规遵从性解决方案。 PCI、FIPS 等安全标准要求使用密钥管理系统来保护、管理和保护密钥库或硬件安全模块 (HSM) 中的加密密钥。
希望本文对您有所帮助。
我正在为我的网站使用托管商的单一共享托管。
我已经创建了一个 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
执行以下查询:
INSTALL PLUGIN keyring_udf SONAME ‘keyring_udf.so’;
CREATE FUNCTION keyring_key_generate RETURNS INTEGER SONAME ‘keyring_udf.so’;
SELECT keyring_key_generate(‘alongpassword’, ‘DSA’, 256);
ALTER TABLE titles ENCRYPTION = ‘Y’;
根据文档警告: keyring_file 和 keyring_encrypted 文件插件并非旨在作为法规遵从性解决方案。 PCI、FIPS 等安全标准要求使用密钥管理系统来保护、管理和保护密钥库或硬件安全模块 (HSM) 中的加密密钥。
希望本文对您有所帮助。