PHP邮件程序类 - 保护电子邮件凭据

时间:2013-10-17 15:52:00

标签: security email phpmailer credentials

我正在使用php邮件程序类通过我的脚本发送电子邮件。

结构如下:

$ mail = new PHPMailer;

$mail->IsSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'myserver.com';  // Specify main and backup server
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'info@somedomain.com';                            // SMTP username
$mail->Password = 'user123';                           // SMTP password
$mail->SMTPSecure = 'pass123';  

在我看来,在普通视图中有一个具有邮箱凭据的安全漏洞。所以我想我可能会将这些放在Web根目录之外的外部文件中。我的问题是如何为$ mail对象分配这些值。

我当然没有如何使用include和/或requires ...这很简单就是......

$mail->IsSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'myserver.com';  // Specify main and backup server
$mail->SMTPAuth = true;                               // Enable SMTP authentication

includes '../locationOutsideWebroot/emailCredntials.php';

$mail->SMTPSecure = 'pass123';

然后emailCredentails.php:

<?php
$mail->Username = 'info@somedomain.com';
$mail->Password = 'user123';
?>

这足够和足够安全吗?

谢谢,

艾伦。

1 个答案:

答案 0 :(得分:3)

我认为您的凭据应存储在webroot之外的配置文件(INI或JSON)中。由于协议需要原始凭证,因此这是最安全的方法。另外,不要忘记为配置文件设置适当的访问权限。

小例子:

<?php

$config = parse_ini_file('/var/app/config.ini', true);

// PHPMailer
$mail->Username = $config['email']['username'];
$mail->Password = $config['email']['password'];