gpt4 book ai didi

web-services - 如果 SPF 记录限定符包含在另一个 SPF 记录中,如果父记录比子记录更严格,对 SPF 记录限定符有什么影响?

转载 作者:行者123 更新时间:2023-12-05 05:27:11 27 4
gpt4 key购买 nike

我想对所有未在我的域的 SPF 记录中明确列出的电子邮件源添加严格的 FAIL 限定符。

这可以通过以下记录简单地完成(-all 指定不应接受所有其他来源)

mydomain.com. IN TXT "v=spf1 ip4:my-ip-address/32 -all"

现在我的问题是我还想将我的电子邮件提供商 (mailgun.com) 和谷歌应用列入白名单,所以我创建了以下记录:

mydomain.com. IN TXT "v=spf1 include:mailgun.org include:_spf.google.com ip4:my-ip-address/32 -all"

现在 mailgun.com 的 SPF 记录(如果是 google,同样的情况适用)解析为:

mailgun.org.        3600    IN  TXT "v=spf1 ip4:173.193.210.32/27 ip4:50.23.218.192/27 ip4:174.37.226.64/27 ip4:208.43.239.136/30 ip4:50.23.215.176/30 ip4:184.173.105.0/24 ip4:184.173.153.0/24 ip4:209.61.151.0/24 ip4:166.78.68.0/22 ip4:198.61.254.0/23 ip4:192.237.158.0/23 " "~all"

现在有趣的是,他们在他们的 spf 记录上放置了一个软失败限定符 "~all"

维基百科对 include 指令的描述如下:

If the included (a misnomer) policy passes the test this mechanism matches. This is typically used to include policies of more than one ISP.

我的解释方式是未知发件人被包含的记录限定为 SOFT FAIL,因此作为 SOFT FAIL 传递,因为它们包含在根记录。即使根记录将 FAIL 放在所有未包含的源上。

因此包含的记录有效地使根记录的 FAIL 限定词无用。因此,最新的严格记录取消了未知来源的整体限定符。

我的假设是否正确?如果不是,在给出的示例中,未知发件人如何符合资格?

最佳答案

该行为在 RFC 的第 5.2 节中进行了描述它说的地方

   Whether this mechanism matches, does not match, or throws an
exception depends on the result of the recursive evaluation of
check_host():

+---------------------------------+---------------------------------+
| A recursive check_host() result | Causes the "include" mechanism |
| of: | to: |
+---------------------------------+---------------------------------+
| Pass | match |
| | |
| Fail | not match |
| | |
| SoftFail | not match |
| | |
| Neutral | not match |
| | |
| TempError | throw TempError |
| | |
| PermError | throw PermError |
| | |
| None | throw PermError |
+---------------------------------+---------------------------------+

这个contects中的机制指的是“include”功能。

如表中所示,软故障导致不匹配。

它还说:

   In hindsight, the name "include" was poorly chosen.  Only the
evaluated result of the referenced SPF record is used, rather than
acting as if the referenced SPF record was literally included in the
first.

我的解释是只有包含的记录的结果是相关的,即在软失败的情况下,不匹配(就像记录有失败一样)限定符。

这也是对这个 website 执行的 py spf 库的测试结果

Input accepted, querying now...


Mail sent from this IP address: 1.2.3.4
Mail from (Sender): scknpbi@cacxjxv.com
Mail checked using this SPF policy: v=spf1 ip4:4.5.6.7/32 include:mailgun.org -all
Results - FAIL Message may be rejected


Mail sent from: 1.2.3.4
Mail Server HELO/EHLO identity: blanivzsrxvbla@saucjw.com

HELO/EHLO Results - none

关于web-services - 如果 SPF 记录限定符包含在另一个 SPF 记录中,如果父记录比子记录更严格,对 SPF 记录限定符有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21648854/

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