微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

托管我的应用程序时关于 phpMailer 安全性的两个问题?

如何解决托管我的应用程序时关于 phpMailer 安全性的两个问题?

目前我正在使用 PHPMailer 在表单提交中向我的 Gmail 帐户发送电子邮件。我用于发送电子邮件代码类似于以下代码

###################
/* sendeng email */
###################
use PHPMailer\PHPMailer\PHPMailer;
if ($sehat === true) {
    require_once "../PHPMailer/PHPMailer.PHP";
    require_once "../PHPMailer/SMTP.PHP";
    require_once "../PHPMailer/Exception.PHP";

    $mail = new PHPMailer();

    //smtp settings
    $mail->isSMTP();
    $mail->Host = "smtp.gmail.com";
    $mail->SMTPAuth = true;
    $mail->Username = "myGmail@gmail.com";
    $mail->Password = 'myPassword';
    $mail->Port = 465;
    $mail->SMTPSecure = "ssl";

    //email settings
    $mail->isHTML(true);
    $mail->setFrom($commEmail,$commName);
    $mail->addAddress("myGmail@gmail.com");
    $mail->Subject = ("$commEmail ($commTopic)");
    $mail->Body = "<div style='text-align:right; direction:rtl;'>" . nl2br(strip_tags($commMess)) . "</div>";
    // $mail->Body = nl2br(strip_tags($commMess));
    // $mail->AltBody = nl2br(strip_tags($commMess));
    // $mail->Body = $commMess;
    /* for other language messages */
    $mail->CharSet = 'UTF-8';

    if($mail->send()){
        $status = "success";
        $response = "Email is sent!";
    }
    else
    {
        $status = "Failed";
        $response = "Something is wrong: <br>" . $mail->ErrorInfo;
    }

    exit(json_encode(array("status" => $status,"response" => $response)));
}

我发送电子邮件没有任何问题。但我的第一问题是我在代码中使用 $mail->Password = 'myPassword'; 的位置。实际上,我正在本地主机 (WAMPSERVER) 上编写和调试代码,并且在代码中使用了我的真实密码而不是 myPassword。但是在完成应用程序后,我将把它托管到一个真正的服务器上(部署我的应用程序)。我的问题是,使用此代码主机提供商可以访问我的 Gmail 密码吗?如果是这样,解决方案是什么?是 PHPMailer 中的错误还是我错了?

第二问题是,当我想将表单数据发送到我的 Gmail 帐户时,我必须在此中将 Gmail 的设置更改为“降低安全性”强>本地主机版本。如果我部署了我的应用程序并且它可以在线使用,我必须再次这样做(降低 Gmail 的安全性)或者有更好的方法吗?因为现在当我将 Gmail 安全设置返回到正常状态时,PHPMailer 不会发送数据。

解决方法

我的问题是,使用此代码,主机提供商可以访问我的 Gmail 密码吗?

是的。

如果是这样,解决方案是什么?

不要使用您不信任的主机。

,

一般来说,您需要能够信任您的主机,但有一个步骤可以帮助避免这意味着的一切:使用 XOAUTH2 进行身份验证。

通过这种机制,您不必在服务器上存储真实的 ID 和密码;您需要在一次性操作中使用它们来获取可仅限于 gmail 操作的令牌。有 code examples provided with PHPMailer 以及 a utility script you can use to obtain your auth tokena wiki article to help you configure it(尽管它可以使用更新;欢迎贡献)。但是,请注意,使用 OAuth 通常是一种复杂且令人不快的体验,其中包含许多可能将事情搞砸的方法。在此用例中,它确实提供了安全增强功能,因为这意味着您不必留下真实的 Google 凭据。

谨慎的托管服务提供商将允许您以某种方式加密虚拟机的磁盘映像,这意味着他们无法从虚拟机管理程序读取您的数据,如果他们也没有对您的实例的 SSH 访问权限,则您的数据应该是受到很好的保护。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。