如何避免在代码点火器3中以纯文本形式存储邮件帐户和数据库密码


How to avoid storing mail account and database password in plain text in codeigniter 3

我创建了一个代码点火器 3 助手来发送来自不同应用程序模块的邮件。我正在使用我的gmail帐户发送所有邮件,除了我必须将gmail密码存储在辅助php文件中之外,它工作得很好。

$config = Array(
    'protocol' => 'smtp',
    'smtp_host' => 'ssl://smtp.googlemail.com',
    'smtp_port' => 465,
    'smtp_user' => 'saurabh@gmail.com',
    'smtp_pass' => 'my password',
    'mailtype'  => 'html', 
    'charset'   => 'iso-8859-1'
);
$this->load->library('email', $config);
$this->email->set_newline("'r'n");
$result = $this->email->send();

我如何避免在上面的代码中存储纯文本密码,同时仍然能够使用我的Gmail帐户。我的数据库密码也是如此,我将明文数据库密码存储在代码点火器的数据库中.php配置文件中。如何避免这种情况?

数据库密码不能隐藏或以其他方式连接它。但是没有人可以使用浏览器访问您的配置文件。

并且可以在电子邮件中完成密码。您可以将其保存在数据库中,并且可以调用它的邮件发送位置。

仅供参考 - 您的项目文件无法使用浏览器或任何其他文件访问。这就是我们使用框架的原因。Bcz 它的安全级别高于正常的 oop pogram。

因此,您的密码和其他内容无论如何都不会公开。

我认为它可能的唯一方法是使用Gmails OAUTH机制而不是 smtp 方法。 这是 API https://developers.google.com/identity/protocols/OAuth2的链接和一些示例https://developers.google.com/gmail/xoauth2_libraries#php_sample。请放心,您必须将纯密码放在应用程序中的某个位置(在数据库中或文件系统中除 apache 之外没有人可以访问的位置)或编写一个 crypt 函数(即使此函数也需要/输出纯密码)