「-all」在包含的(輔助)SPF 記錄中扮演什麼角色?

「-all」在包含的(輔助)SPF 記錄中扮演什麼角色?

在 SPF 記錄中,該-all選項意味著“我僅將我在此處明確列出的計算機/網域列入白名單,並且沒有其他伺服器可以為該網域發送電子郵件。”

include:那麼,當人們使用SPF 記錄中的選項來包含第二筆 SPF 記錄時,這意味著什麼?中學SPF有記錄-all嗎?它存在的話有什麼作用呢?

答案1

包含機制將觸發對包含記錄的遞歸評估。如果此評估失敗(例如,透過包含的記錄中的 -all),則包含機制的結果將被視為「不匹配」。因此,實際上,包含的 SPF 記錄中的 -all 機制(或任何其他帶有 - 限定符的機制)不會對主記錄的評估產生任何影響。

有關包含機制如何影響主記錄評估的完整概述,請參閱 RFC 7208 第 5.2 節的表格(https://www.rfc-editor.org/rfc/rfc7208#section-5.2

答案2

為了透過 SPF 檢查,發送 IP 位址必須通過至少一種機制。包含機制使用包含的 SPF 記錄測試傳入 IP 位址並「傳回」結果。

使用你的例子:

a.example.com    IN TXT "v=spf1 include:b.example.com +all"
b.example.com    IN TXT "v=spf1 -all"

包含的記錄將返回失敗,因為它只包含一個-all機制。但是,第一筆記錄會通過,因為它有+all機制。

使用更詳細的範例:

a.example.com            IN TXT "v=spf1 ip4:1.2.3.4 mx include:spf.example.org -all"
a.example.com            IN MX  0 mailserver.example.com
mailserver.example.com   IN A   1.2.3.5
spf.example.org          IN TXT "v=spf1 ip4:4.3.0.0/16 -all"

我將按照記錄中指定的順序寫下每種機制的結果。因此,結果將採用如下格式:

  • a.example.com:[ip4] [mx] [include] [-all]
  • spf.example.org:[ip4] [-all]

使用以下寄件者地址:

1.2.3.4

  • spf.example.org ->fail fail
  • a.example.com ->pass fail fail fail

最終結果將是pass,因為至少通過了一項檢查

1.2.3.5

  • spf.example.org ->fail fail
  • a.example.com ->fail pass fail fail

最終結果將是pass,因為至少通過了一項檢查

4.3.10.20

  • spf.example.org ->pass fail
  • a.example.com ->fail fail pass fail

最終結果將是pass,因為至少通過了一項檢查

長話短說:包含機制被單獨評估,並將結果傳回包含它的記錄的評估。如果沒有機制匹配,記錄評估就會失敗。由於您以 結束範例+all,因此它將始終匹配並因此通過。

答案3

-all在處理任何包含之後,將解釋末尾的。

其目的是傳達如何處理未透過列出的資源發送的電子郵件。

-all意味著將它們視為偽造品而放棄,而~all意味著它們可能仍然是合法的,並且應該更加懷疑地對待。

相關內容