SPF中的include:和a:有什么区别?

22
我已经阅读了文档,但是仍然不太清楚它们之间的区别。
我的理解是: 1)include:将允许指定域名中列出的IP,以及该域名自己SPF记录中列出的任何其他域名。
2)a:仅允许指定域名中列出的IP。
这正确吗?

1
需要注意的是,被include的记录不会造成后门 - 如果您有一个-all默认操作,但是包含的域使用了?all,它不会覆盖您自己的设置。 - Synchro
2个回答

19

针对其他人尝试组合此内容的答案,基于OP可能参考的语法文档,open-spf.org "SPF Record Syntax" page

注意:以前该文档位于 http://www.open-spf.org/SPF_Record_Syntax/,但该域名似乎已经永久下线。有关历史和缺失域名的更多详细信息,请参见 here

我的答案是是的,您似乎已经考虑到了。

  • a: 测试IP地址是否与该域的A记录匹配。

  • include: 获取域的整个SPF记录,对IP进行评估,如果找到PASS,则该PASS成为整个SPF测试的结果。 如果未找到PASS,则不是失败,但您的原始/顶级SPF测试将继续(可能到-all /〜all /?all阶段)。

使用"a"的原因:

  • 因为它更可预测和直接。
  • 因为您尚未在相关域上设置SPF。
  • 因为您无法控制这些域,而SPF不是您想要的(特别是如果它太宽松地接受其他不在其A记录中的服务器)

使用“include”的原因:

  • 因为您已经信任该域的SPF。
  • 因为该域的SPF很复杂,您希望有一个单一的真相来源,以避免重复。

乐意接受纠正!


1
请记住,a: 用于匹配A或AAAA记录。 - gog
如果您托管了许多网站,但不一定托管它们的DNS,使用“include:”可以使您在不直接更改包含您的域的DNS的情况下对SPF记录进行未来更改。 - Aaron Cicali

7

1) include: other-domain.com 只是从other-domain.com 包含SPF记录。 如果other-domain.com的SPF条目允许某些IP(例如具有ip4:或a:条目),则这些IP也将被允许。

2) 真


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接