我为什么要担心保护我的 WordPress 电子邮件?

已发表: 2023-05-31

电子邮件无处不在。 它们已成为人们通过 Internet 进行交流的最常用方法之一。 WordPress 管理员和网站所有者将电子邮件用于各种目的,例如个人和专业交流、营销、招聘等。

电子邮件还可以包含敏感信息,您可以使用这些信息对用户进行身份验证或允许他们执行某些操作,例如重置密码等。在本教程中,我们将讨论网站所有者需要了解的有关 WordPress 电子邮件安全的所有信息。

让我们从保护您的 WordPress 网站电子邮件的需求开始讨论。 确保您的电子邮件安全有助于很多事情,例如:

  • 保护敏感信息——如前所述,您经常会发送包含敏感信息的电子邮件。 这可能包括用户的登录凭据以及与他们的健康或财务相关的个人信息。 无论如何,您需要确保没有恶意的人可以拦截此信息。
  • 发送电子邮件——垃圾邮件是互联网上的一个大问题。 我们确信您也收到了相当多的垃圾邮件。 在最好的情况下,它们很烦人,在其他情况下可能会导致更严重的后果。 电子邮件服务器处理潜在垃圾邮件的一种方法是不发送根本不符合标准的电子邮件。 同样,可能被不同电子邮件客户端视为垃圾邮件的电子邮件将被标记为垃圾邮件,并放在远离主收件箱的单独文件夹中。
  • 维护品牌声誉——如果您不认真对待 WordPress 电子邮件安全,您的品牌声誉可能会受到威胁。 想一想,如果一个品牌的电子邮件经常被垃圾邮件过滤器卡住,或者一个品牌缺乏安全性导致您的个人信息泄露,您会作何感想?
  • 防止基于电子邮件的攻击——怀有恶意的人可以使用电子邮件网络钓鱼来访问您的网站或访问用户数据。 这可能会带来各种安全问题。 在任何一种情况下,您都需要采取适当的措施来保护 WordPress 电子邮件。

在 WordPress 中发送安全电子邮件

WordPress 有一个内置的 wp_mail() 函数,用于发送电子邮件。 此功能依赖流行的免费开源 PHPMailer 库来发送您的所有电子邮件。

使用该库的一个优势是它有一个集成的 SMTP 客户端,允许您在所有平台上发送电子邮件而无需本地邮件服务器。

术语 SMTP 代表简单邮件传输协议。 SMTP 客户端是我们可以用来将电子邮件从一台服务器发送到另一台服务器的程序。 客户端做了很多有价值的事情,比如与电子邮件服务器建立连接、发件人的身份验证和电子邮件传输。

使用 wp_mail() 函数并不能自动保证您的电子邮件接收成功。 一旦请求成功,它将返回 true,无论电子邮件的传递状态如何。 因此,您将确保发送的电子邮件已送达。

您可以通过向现有源代码添加几行 PHP,在 wp-config.php 文件中添加与 SMTP 相关的设置。 但是,更简单的选择是使用插件。
您可以使用众多免费的 WordPress SMTP 插件之一,这些插件将帮助您配置所有设置以有效且安全地发送电子邮件。 过去我们已经非常详细地介绍了 WordPress 电子邮件的可传递性。

设置 SMTP 插件

值得一提的是,您可以在自己的网站上使用多个 SMTP 插件。 你可以试一试,看看哪一个最适合你。 最受欢迎的插件之一是 WP Mail SMTP 插件。

流行的 WordPress SMTP 插件

您使用的任何插件都会要求您为您的网站选择一个 SMTP 邮件程序。 有几个选项可用,例如 SendLayer、Postmark、SendGrid、Zoho Mail 等。设置向导将帮助您进行初始配置,您可以在其中提供所有需要的信息,例如 API 密钥等。所有这些设置适用于不同的插件将在 WordPress 仪表板中可用。

在设置这些插件时,您应该牢记两件重要的事情:

  1. 确保您使用 SMTP 客户端通过 SSL 发送电子邮件。 这将有助于防止电子邮件在传输过程中被拦截。 许多服务,如 SendLayer 等,将自动为您处理 SSL/TLS 加密。 但是,如果您选择其他 SMTP 作为您的 SMTP 邮件程序,您也可以手动提供有关 SMTP 主机、端口号、加密等的信息。
  2. 如果您通过电子邮件发送敏感信息,您可能还想禁用电子邮件日志记录。 如果出现问题,这将防止任何不必要的数据泄漏。 测试时打开此选项很好,但在其他情况下最好将其关闭。

常见的电子邮件安全框架

安装和使用 SSL 证书发送电子邮件将确保电子邮件内容在电子邮件客户端和电子邮件服务器之间传输时是安全的。 通过防止在传输过程中对电子邮件进行任何未经授权的访问或拦截,这成为可能。

提高 WordPress 电子邮件安全性的下一步涉及使用加密,以便只有预期的收件人才能阅读发送给他们的电子邮件的内容。

您可以使用许多不同的电子邮件安全框架来保护 WordPress 网站上的电子邮件。 电子邮件安全框架一词指的是一套指导方针和标准,旨在确保您的所有电子邮件通信免受垃圾邮件、网络钓鱼和未经授权访问等安全风险的侵害。

不同的 SMTP 服务器可能会使用多个电子邮件安全框架的组合来实现其保护电子邮件的目标。 让我们了解其中的一些。

发件人政策框架

发件人策略框架,也称为 SPF,是一种电子邮件身份验证框架,允许收件人的电子邮件服务器检查电子邮件是否来自合法来源。

简而言之,SPF 通过检查发件人域的 DNS(域名系统)记录来验证发件人的 IP 地址是否与该域的授权 IP 地址相匹配。

发送电子邮件后,收件人端的邮件服务器将检查 SPF 记录,以确定电子邮件是否确实是从发件人端的授权邮件服务器发送的。 SPF 记录将包含有关可以代表特定域发送电子邮件的所有 IP 地址和域的信息。 任何不匹配都会导致将电子邮件标记为可疑。

SPF 有助于打击垃圾邮件和网络钓鱼攻击,在这些攻击中,有人会伪装成他们不是的人。

域名密钥识别邮件

DomainKeys Identified Mail (DKIM) 框架依赖于使用数字签名来验证电子邮件的发件人是否合法。 它还确保在传输电子邮件时电子邮件的内容未被更改。

数字签名只不过是使用与合法域名关联的私钥生成的加密值。 电子邮件在其标头中包含加密值作为 DKIM 签名字段。

收件人端的邮件服务器可以从 DNS 记录中访问发件人域的公钥。 电子邮件系统使用公钥对签名进行解密,以验证发件人的真实性。 系统在验证发件人的真实性后将电子邮件发送到收件人的邮箱。

这里的秘密在于私钥用于生成加密签名,而这个签名只能通过对应的公钥来解密。 这意味着生成的散列值与私钥和公钥的匹配值可以保证电子邮件的真实性。

基于域的消息身份验证、报告和一致性

前两个框架​​允许您验证电子邮件的发件人是否是他们声称的人。 这有助于防止垃圾邮件和网络钓鱼攻击。

如果电子邮件未通过 SPF 或 DKIM 检查怎么办?

您可能想知道合法电子邮件怎么会无法通过 SPF 或 DKIM 检查。 这可能发生在多种情况下,例如错误配置的 SPF 或 DKIM 记录、由于比通常的传输时间长而导致的无效时间戳,以及转发服务器无权代表原始发件人域发送电子邮件的电子邮件转发。

在这种情况下,基于域的消息身份验证、报告和一致性 (DMARC) 框架可以助您一臂之力。

域所有者可以将 DMARC 策略添加到他们的 DNS 记录中,以指定如何处理未通过 SPF 或 DKIM 身份验证检查的任何电子邮件。

一旦电子邮件未通过这些检查,收件人的电子邮件服务器将查找发件人域的 DMARC 策略。 DMARC 策略将指定是否应拒绝、隔离电子邮件或将其发送到收件人的邮箱。

除了检查发件人的合法性之外,DMARC 还包括向域所有者报告有关从其域发送的电子邮件的所有信息的机制。 访问此信息可以帮助域所有者识别潜在的电子邮件欺骗或网络钓鱼攻击。 这最终会提高电子邮件的安全性。

很好的隐私

Pretty Good Privacy 或 PGP 是另一个有趣的电子邮件安全框架,它为您的电子邮件提供端到端加密,确保只有预期的收件人才能阅读您的电子邮件。

PGP 安全协议的加密系统依赖于一对公钥和私钥。 PGP 协议的所有用户都将拥有自己的公钥和私钥。 PGP 使用公钥加密电子邮件消息,使用私钥解密电子邮件。 每个想要与用户通信的人都可以访问公钥。 私钥由用户保管。

假设您想向某人发送电子邮件。 作为发件人,您将使用收件人提供的公钥来加密您的消息。 这确保只有收件人可以解密消息,因为只有他们才会拥有私钥。

PGP 还使用数字签名来验证电子邮件的真实性和完整性,并确保在传输过程中没有被篡改。

私钥证明对生成数字签名很有用,数字签名可验证发送者的真实性。 私钥用于创建电子邮件的散列。 由于 PGP 的工作原理是共享公钥,因此电子邮件的收件人将可以访问发件人的公钥。 此公钥可用于解密哈希,验证消息是否未更改。

PGP 的另一个重要方面是“信任网络”系统,不同的用户可以在其中签署彼此的公钥,以表明他们已经验证了密钥所有者。 这使得怀有恶意的人更难冒充用户。

在您的 WordPress 网站上实施电子邮件安全

我们现在将学习如何在您的网站上实施不同的电子邮件安全框架。

发件人政策框架

如前一节所述,SPF 通过检查发件人域的 DNS 记录来工作。 它检查发件人的 IP 是否与该域的授权 IP 地址匹配。

我们可以使用 wpwhitesecurity.com 作为示例对此进行测试。 我们需要做的就是使用 nslookup 命令,如下所示:
nslookup -type=txt 域名

WP White Security SPF 记录

结果告诉我们使用哪些系统发送电子邮件。

v=spf1 a mx include:_spf.google.com include:relay.kinstamailservice.com include:servers.mcsv.net include:helpscoutemail.com include:sendgrid.net ~all

如果您从我们这里收到的电子邮件不是来自这些系统中的任何一个,那么它很可能是不合法的。

实施 SPF 所需要做的就是将 TXT 记录添加到域的 DNS 区域文件中。 TXT 记录可以包含您想与域名相关联的任意文本。 在这种情况下,它将包含 SPF 信息。

第一步是登录您用来管理 DNS 记录的任何服务。 在这种情况下,我们将使用 Cloudflare。 因此,我们首先登录Cloudflare账户,选择要编辑DNS记录的域。

如果您使用的是 Cloudflare,您应该会在左侧边栏或“快速操作”下看到更改DNS 设置的选项。 单击它以添加 DNS 记录。 下一页将有一个添加记录按钮。 单击它,您将看到以下屏幕。

在 Cloudflare 中添加 DNS 记录

在类型下拉列表下选择 TXT。 将名称设置为您的域根。 保持 TTL 为 Auto,并将 Content 的值设置为 v=spf1 mx a ip4:XXX.XXX.XXX.XXX -all。 使用下面的屏幕截图作为参考。

DNS 记录由不同的部分组成。 让我们一次看一下它们的含义:

  1. v=spf1 — 这部分指定了正在使用的 SPF 协议的版本。 在本例中,SPF 版本为 1。
  2. mx — 这部分授权域的 MX 记录代表域发送电子邮件。
  3. a — 这部分授权域的 A 记录或其 ipv4 地址代表域发送电子邮件。
  4. ip4:XXX.XXX.XXX.XXX — 您可以添加此部分以将特定 IP 地址添加到发送电子邮件的白名单。
  5. -all — 这部分指定了对于与任何授权域或 IP 地址不匹配的电子邮件应该如何处理。

确保将 XXX.XXX.XXX.XXX 替换为要列入白名单的 IP 地址。 如果您只打算从您的域发送电子邮件地址,则不需要添加此部分。 但是,您应该在此处包括邮件服务器的 IP 地址以防止任何欺骗。

域密钥识别邮件

DKIM 框架还依赖于存储在 DNS 记录中的值来验证电子邮件发件人的真实性。

主要区别在于 SPF 依赖于检查 DNS 记录中的 IP 地址以确保某些授权发送了电子邮件,而 DKIM 依赖于使用公钥和私钥。

如果您使用 Cloudflare 来管理您的域,您可以添加 DNS 记录,就像我们在上一节中所做的那样。 但是,您也可以从托管服务提供商的仪表板更新 DNS 记录。

这是托管帐户的 cPanel 中当前 DKIM TXT 记录的屏幕截图。 您可以在登录到您的 cPanel 帐户并检查电子邮件送达率后找到这些选项。

cPanel DKIM 记录

DKIM 记录的名称设置为 default._domainkey 以确保不同的电子邮件服务提供商可以轻松找到它。

DKIM 记录的内容由几个部分组成,解释如下:

  1. v=DKIM1 — 这部分指定正在使用的 DKIM 协议的版本。
  2. k=rsa — 这部分指定我们使用的公钥是 RSA 密钥。
  3. p=KEY_VALUE — 这部分是 Base64 编码的公钥。

基于域的消息身份验证、报告和一致性

我们现在将学习如何将 DMARC 策略添加到我们的 DNS TXT 记录。 添加 DNS 记录的过程在这里保持不变。 唯一改变的是记录的名称及其内容。

我们的 DNS TXT 记录的名称将是 _dmarc.yourwebsite.com,其中 yourwebsite.com 是您的实际网站。 同样,这只是用于轻松识别 DMARC 政策的标准约定。

您总共可以添加 11 个标记值对作为 DMARC 策略 DNS TXT 记录的内容。 您可以在这个全面描述 DMARC DNS TXT 记录的页面上阅读它们。

让我们使用 Cloudflare 中新引入的向导来添加 DMARC 策略。

在 Cloudflare 中添加 DMARC 策略

单击向导链接后,您将看到以下屏幕。 只需单击“添加”按钮,您就可以开始了。

DMARC 记录配置屏幕

我们现在将了解 DMARC 记录中的内容的含义:

  1. v=DMARC1 — 与往常一样,这指定了使用中的 DMARC 协议的版本。
  2. p=none — 这部分指定不对失败的检查采取任何策略操作。 您还可以将此值设置为隔离或拒绝。 将值设置为 quarantine 会将电子邮件标记为潜在可疑,但仍将其发送到收件人邮箱的垃圾邮件文件夹。
  3. rua=mailto:[email protected] — 这部分指定接收报告的电子邮件地址。 报告将包含有关通过或未通过 DMRC 检查的电子邮件的信息。

保护电子邮件以提高安全性

正如一句古老的格言所说,一条链条的强度取决于它最薄弱的一环。 当涉及到安全性时,这是非常正确的,这要求 WordPress 管理员和网站所有者超越保护 WordPress 并解决支持/周围基础设施的问题。

电子邮件安全往往被忽视; 但是,正如我们刚刚在文章中看到的那样,保护电子邮件的安全相对容易且非常容易获得。 从配置 DNS 记录到加密电子邮件,这不仅可以确保更好地覆盖客户和用户,还可以大大降低安全风险。

提高 WordPress 安全性的更多技巧

确保您的电子邮件安全只是整体网站安全的一部分。 以下是一些提高网站整体安全性的一般提示。

  • 定期更新——保持所有 WordPress 主题或插件的更新很重要。 更新通常会添加新功能并修复已知漏洞。
  • 使用强密码——您应该为所有与网站相关的帐户使用强而独特的密码,包括虚拟主机、数据库、FTP 帐户、WordPress 管理员帐户等。这将防止暴力攻击破解您的密码。 您可以使用 MelaPress 登录安全插件来遵循所有最佳登录安全实践,例如强密码、阻止过多失败的登录尝试等。
  • 安装安全插件——您还应该考虑安装安全插件。 一些最受欢迎的选项是 Wordfence、iThemes Security、All-In-One security 等。您还可以安装 WP Activity Log 等插件来记录 WordPress 网站上发生的所有更改。
  • 使用双因素身份验证 — 您可以使用双因素身份验证来添加额外的安全层。 WP 2FA 等免费插件可以帮助您轻松做到这一点。
  • 定期备份——您还应该定期备份您的网站。 这将帮助您在出现安全漏洞或其他问题时快速上线您的网站。
  • 使用可靠的虚拟主机 — 确保您使用的是知名且可靠的虚拟主机来托管您的网站。 Web 主机将负责几件事,例如保护 Web 服务器、更新它、在后端进行备份等。
  • 使用防火墙——安装防火墙将防止未经授权的访问,同时防止常见的安全威胁和 DDOS 攻击。 可以通过您的虚拟主机在服务器级别安装防火墙,也可以通过您作为 WordPress 插件在网站级别安装防火墙。 好消息是 Wordfence 等插件已经提供了防火墙,可以保护您免受恶意软件的侵害。
  • 限制登录尝试——您可以采取的另一项安全措施是限制登录尝试失败的次数,以防止机器人的暴力攻击。