【问题标题】:Database Credentials Encryption - CodeIgniter [closed]数据库凭证加密 - CodeIgniter [关闭]
【发布时间】:2014-03-21 00:59:22
【问题描述】:

如何在 CodeIgniter 中加密我的数据库凭证?

Config 文件中存在的数据库 Creditable。

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

提前致谢。

【问题讨论】:

  • 你为什么要这样做?只是让外人无法访问此文件。这样就可以了。
  • 加密意味着试图对某人隐藏/保护某些东西。您要向谁隐藏这些配置值?您的应用程序需要它们工作,因此您的应用程序需要能够解密它们。如果您的应用程序有解密它的代码,并且配置文件是应用程序的一部分,那么任何有权访问配置文件的人也应该有权访问解密方法。因此,这从表面上看似乎毫无用处,除非您能澄清更多。
  • @deceze - 我需要在配置文件中加密密码,如果不可能,那么是否有替代方案?我不希望任何人可以访问或损坏我的凭据。
  • 来吧,我在 cmets 上写的关于这个主题的文章比你写的还多。明确您想要保护哪些对象以及为什么要保护。只有这样才能找到正确的解决方案。
  • 好的,就像没有其他用户或任何人可以访问这个文件,除了所有者。我需要保护这个文件。我该怎么做?

标签: php mysql database codeigniter encryption


【解决方案1】:

我建议使用环境变量。假设您使用的是 Apache。您可以在您的 VirtualHost 中设置这些变量,并在以后引用这些变量。

通过这种方式,您可以对应用程序隐藏您的实际数据库值,但您会将密码的存储从应用程序转移到 Apache。

How do you use SetEnv to read variables in Apache?

我认为这就是你的意思。您无法从应用程序中完全隐藏这些值。在某些层面上,它们需要对您的应用来说是原始的。

您还可以使用$_SERVERgetenv() 函数来检索您设置的值。 getenv() documentation

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/path/httpd"
    ServerName mysite.local
    ServerAlias mysite.local
    SetEnv DB_HOST myhost
    SetEnv DB_USERNAME username
    SetEnv DB_PASSWORD password
    ...
    SetEnv DB_DBNAME dbase
</VirtualHost>

PHP
$db['default']['hostname'] = getenv('DB_HOST');
$db['default']['username'] = getenv('DB_USERNAME');
$db['default']['password'] = getenv('DB_PASSWORD');
$db['default']['database'] = getenv('DB_DBNAME');
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 2013-01-05
    • 1970-01-01
    相关资源
    最近更新 更多