gpt4 book ai didi

php - 保存 SMTP 密码供以后使用,不使用哈希值

转载 作者:行者123 更新时间:2023-11-29 15:52:11 24 4
gpt4 key购买 nike

我创建了一个 PHP 应用程序,其中有一个设置面板,用户必须在其中提供应用程序运行所需的一些数据。用户将提供有关 SMTP 设置的字段,以便应用程序可以在需要时向客户发送确认电子邮件。

为了做到这一点,我保存数据库中提供的信息,必填字段之一是 SMTP 密码,我需要以原始状态保存它,而不进行任何哈希处理。我需要这种方式,因为 PHPMailer 需要密码,而不是哈希值。

我担心这种方法的安全性,因为我不想将其保存为纯文本,但我也需要这种方式来发送电子邮件。

我需要一些关于这个问题的建议。

PS:我忘了提及我使用 XAMPP 来开发该应用程序。

提前谢谢您!

最佳答案

您绝对不应该在数据库中存储纯文本密码。正如其他评论者所指出的,Web 根目录之上的 .env 配置文件是一种标准方法。但是,您采取的方法取决于应用程序的托管方式。例如,如果您在 AWS 上托管应用程序,建议的方法是将凭证存储为可以像这样访问的环境变量:

$mail = new PHPMailer(true);

try {
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Host = $_SERVER['SES_HOST'];
$mail->Username = $_SERVER['SES_USERNAME'];
$mail->Password = $_SERVER['SES_PASSWORD'];
$mail->SMTPSecure = 'ssl';

使用 .env 文件可以采取相同的方法。或者,如果您使用的是 Apache,则可以将变量添加到 httpd.conf 文件中,如下所示,然后通过引用 $_SERVER 全局来访问它们:

SetEnv SES_PASSWORD strongpassword123

既然您提到您正在使用 XAMPP(即 Apache),请打开 Apache 配置并修改 httpd.conf 文件,并将上面的 SetEnv 行添加到该文件的底部。重新启动 Apache 服务后,您将能够使用 $_SERVER['var_name'] 引用您的值。

关于php - 保存 SMTP 密码供以后使用,不使用哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56709104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com