我為什麼要擔心保護我的 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 等插件已經提供了防火牆,可以保護您免受惡意軟件的侵害。
  • 限制登錄嘗試——您可以採取的另一項安全措施是限制登錄嘗試失敗的次數,以防止機器人的暴力攻擊。