0Pricing
Cyber Security Academy · 课时

SPF 记录

授权发送邮件的服务器。

SPF 记录 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

SPF 解决什么问题

SPF(发件人策略框架)允许域名所有者发布一份邮件服务器列表,列出哪些服务器获准代表该域发送电子邮件。接收服务器会检查此列表,以检测伪造的发件人。

SPF 回答一个问题:发送这封邮件的服务器是否获准代表该域发送邮件?如果没有,这封邮件就很可疑。

发布为 DNS TXT 记录

SPF 策略会以 TXT 记录的形式发布在您域名的 DNS 中。每个域名必须恰好有一条 SPF 记录。

一个基本示例:

; DNS TXT record for company.com
company.com.  IN  TXT  "v=spf1 ip4:198.51.100.4 include:_spf.google.com -all"

接收方如何检查 SPF

接收服务器收到邮件后,会执行 SPF 检查:

  • 读取信封 MAIL FROM域名(返回路径)
  • 在 DNS 中查找该域名的 SPF TXT 记录
  • 将连接服务器的 IP与授权列表进行比较
  • 返回结果:通过、失败、软失败、中立或无结果

请注意,SPF 检查的是信封发件人,而不是可见的发件人标头,这是后文将介绍的一项重要限制。

SPF 机制

SPF 记录由用于描述获授权发送方的机制构成:

ip4:198.51.100.4      authorize a single IPv4 address
ip4:198.51.100.0/24   authorize an IPv4 range
ip6:2001:db8::/32     authorize an IPv6 range
a                     authorize the domain's A record IP
mx                    authorize the domain's MX servers
include:_spf.vendor   include another domain's SPF (vendors)
all                   matches everything (use with a qualifier)

限定符与全部机制

每个机制都可以带有一个限定符,用于设置匹配时的结果:

+   Pass     (default if omitted)
-   Fail     (hard fail - reject)
~   SoftFail (mark suspicious, usually accept)
?   Neutral  (no policy stated)

Endings:
-all   reject anything not listed   (strict, recommended)
~all   soft-fail unlisted senders   (monitoring / rollout)
+all   allow everyone               (NEVER use - defeats SPF)

面向供应商的包含机制

大多数组织都会通过第三方服务发送邮件:谷歌工作空间、微软 365、营销平台和工单系统。包含机制会将处理委托给这些供应商自己的 SPF 记录。

例如,include:_spf.google.com 会引入谷歌授权的地址范围。这样可以让您的记录更易于维护:供应商会更新其地址范围,而您无需进行更新。

必须包含每项合法的发送服务,否则其邮件将无法通过 SPF 检查。

10 次 DNS 查询上限

SPF 设有严格上限:评估一条记录时,最多只能触发 10 次 DNS 查询。包含、地址记录和邮件交换记录等机制都会消耗查询次数,而嵌套的包含项会很快累加查询次数。

超过此上限会产生永久错误,SPF 检查实际上也会失败。应对措施包括:

  • 移除未使用的包含项
  • 使用 SPF 扁平化,将包含项替换为原始 IP 地址范围
  • 合并发送服务

SPF 与转发失效

SPF 有一个众所周知的弱点:转发会使其失效。邮件被自动转发时,转发服务器会成为新的连接 IP,而该 IP 不在原始域名的 SPF 记录中。

结果是,一封完全合法的邮件也会被判定为 SPF 失败。这是 SPF 单独使用仍不够充分的关键原因,也是需要将能够经受转发的 DKIM 和 DMARC 对齐机制与 SPF 配合使用的原因。

SPF 只检查信封

SPF 有一项关键限制:它验证的是信封 MAIL FROM 域名,而不是用户看到的可见发件人标头。

攻击者可以在信封中使用自己的域名通过 SPF,同时仍在发件人标头中显示您的域名。对于阅读者而言,即使邮件是伪造的,单独使用 SPF 仍会将其判定为“通过”。

DMARC 通过要求信封域名或 DKIM 域名与可见发件人对齐来弥补这一缺陷。

安全部署 SPF

请谨慎推出 SPF,以免阻止合法邮件:

  • 盘点所有以您域名名义发送邮件的服务
  • 使用所有必需的包含项构建记录
  • 从 ~all(软失败)开始,并监控遗漏的发送方
  • 确认无误后,收紧为 -all(硬失败)
  • 保持在 10 次查询上限以内

请在每次更改前后使用邮件测试工具进行测试。错误的 SPF 记录可能会在您毫无察觉的情况下将自己的邮件发送到垃圾邮件文件夹。

真实的 SPF 记录

下面是一家同时使用谷歌工作空间、营销供应商和支持供应商的组织所使用的记录:

company.com.  IN  TXT  "v=spf1 \
  include:_spf.google.com \
  include:sendgrid.net \
  include:_spf.supportvendor.com \
  ip4:198.51.100.4 \
  -all"

; Listed senders pass; everything else hard-fails.

快速检查

请测试您对 SPF 的理解。

回顾

您已经学会了 SPF 的工作方式:

  • SPF 发布 DNS TXT 记录,列出获授权代表某个域名发送邮件的服务器
  • 接收方会将信封 MAIL FROM 域名与连接 IP 进行核对
  • SPF 由机制(IP 地址、地址记录、邮件交换记录和包含机制)及限定符构成,并以 -all 或 ~all 结尾
  • 请注意10 次查询上限、转发导致的失效,以及 SPF 只检查信封而不检查可见发件人这一点
  • 先以软失败推出并进行监控,然后收紧为硬失败

接下来,您将学习 DKIM 如何以加密方式为邮件签名。

常见问题解答

「SPF 记录」课时是免费的吗?

是的 — 「SPF 记录」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「SPF 记录」这节课中我会学到什么?

授权发送邮件的服务器。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「SPF 记录」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 电子邮件欺骗的原理
  2. SPF 记录
  3. DKIM 签名
  4. DMARC 策略与报告
← 返回 Cyber Security Academy