首页 / 文章

使用 Node.js 对 SPF、DKIM 和 DMARC 进行审计,并按优先级显示检测结果

从 Node.js 执行 SPF、DKIM 和 DMARC 安全审计,正确设置 DKIM 选择器,并将检测结果转化为按实际影响程度排序的修复计划。

发布者:REACTAPP.TOP阅读约 5 分钟1150 词

来源: SPF, DKIM & DMARC Checker API with Node.js

目标:调用服务器端的 Node.js 辅助工具,该工具会返回数值评分、检测级别的证据,以及关于公共域名邮件安全措施的有序问题列表。

仅检查是否存在三个 TXT 记录是不够的。许多运营商会发布 SPF 设置却忽略 DMARC,使用没人预料到的选择器进行 DKIM 签名,或者表面上看起来已通过认证,却未启用 MTA-STS 等传输控制机制。

因此,有效的审计应当收集相关证据,将已确认的故障与未知问题区分开来,并对修复措施进行排序。下面的演示展示了如何从 Node.js 客户端调用涵盖路由、传统认证记录、传输策略、报告功能以及品牌标识的 API——同时阐明了这些结果仍无法证明邮件是否会进入收件箱。

各项邮件安全检测能告诉您什么

前四个控件构成了认证核心,而后面的控件则用于提升传输可见性、强化策略执行以及加强品牌标识。

需明确各功能的职责:SPF用于授权邮件发送方,DKIM用于验证消息中的加密签名,而DMARC则用于判断已认证的身份与收件人看到的地址是否一致。仅有DNS记录的存在并不意味着所有合法邮件都能通过验证。

从Node.js审计域名

在RapidAPI市场上提供的托管型域名邮件安全与投递能力审计接口支持快速的GET请求和JSON格式的POST请求。应从市场页面复制实际的托管地址字符串,而非直接使用占位主机名。

const domain = "example.com"; const selectors = ["google", "selector1"]; const params = new URLSearchParams({ domain, dkim_selectors: selectors.join(","), }); const response = await fetch( `https://${process.env.RAPIDAPI_HOST}/api/v1/mail-security/audit?${params}`, { headers: { "x-rapidapi-key": process.env.RAPIDAPI_KEY, "x-rapidapi-host": process.env.RAPIDAPI_HOST, }, }, ); if (!response.ok) { const body = await response.text(); throw new Error(`Mail-security audit failed (${response.status}): ${body}`); } const audit = await response.json(); console.log({ domain: audit.domain, score: audit.score, summary: audit.summary, findings: audit.findings, });

保护凭证:应将RapidAPI密钥存储在环境变量或秘密管理工具中。绝不可将其提交到代码仓库,也不应在浏览器JavaScript中使用。

响应内容包含域名、处理时间、评分与等级、各项检测结果、汇总信息以及按优先级排序的问题——这些结构化数据足以用于仪表板展示、入门验证、定时监控以及问题处理工单。

为何DKIM需要特殊处理

SPF配置位于顶级域名处,而DMARC则位于_dmarc.example.com。DKIM的DNS名称中包含一个选择器:

selector._domainkey.example.com

选择器由发送方服务提供商或邮件管理员选定。DNS并不提供所有正在使用的选择器的完整列表,因此审计人员无法自行编造出完整的列表。

当已知服务提供商时,应在请求中附带合理的选择器——Google Workspace通常使用google;其他系统则可能使用selector1、selector2或带有时间戳的名称。

如果没有任何经过测试的选择器能解决问题,应报告unknown而非fail,并将该得分视为临时值。对于严重的DKIM验证失败,需要来自真实已签名邮件的证据或发件人实际配置的选择器作为依据。

将检测结果转化为修复方案

原始的DNS输出并非修复计划。请按以下顺序进行处理:

  1. 首先恢复邮件路由功能。损坏或缺失的MX记录会阻碍正常邮件送达。
  2. 修复SPF语法及授权设置。仅保留一个SPF记录,删除过时的包含项,并遵守查询限制。
  • 发布DMARC策略并逐步加强限制。如有需要可先进行报告功能,识别合法发件源,待配置稳定后再转向隔离或拒绝处理。
  • 为每个活跃发件人确认DKIM配置。需覆盖所有发送平台,而不仅仅是主要的邮件服务提供商。
  • 同时启用MTA-STS与TLS-RPT功能。策略可要求使用安全传输方式,而报告功能则用于说明失败原因。
  • 将BIMI视为可选的最终防护层。它依赖于强大的身份验证机制,可能需要额外的品牌或证书配置。
  • 这样的顺序可以避免在尚未梳理清楚所有合法发件人之前就锁定策略。

    将评分视为参考信号,而非最终结论

    评分有助于比较不同域名、追踪配置进展以及处理表现不佳的情况,但并不能保证邮件能成功送达收件箱。

    邮件投递情况还取决于信誉、投诉记录、退信率、内容质量、发送频率、用户互动程度以及每封邮件的匹配度——而这些都是公共DNS和MTA-STS HTTPS检测无法识别的。此处所述的审计流程不会建立SMTP会话、发送探测请求、读取供应商的私有控制台,也不会递归解析所有的SPF包含项。在评估邮件投递能力之前,应结合配置凭证、邮件头信息、供应商的监控数据以及可控的发送测试结果来进行综合判断。

    实际应用方法

    • 代理商审计:在提出修改建议之前先建立可重复的基准数据。
    • SaaS服务上线指导:在发送域名连接之前,若发现缺少身份验证机制则及时向客户发出警告。
    • 供应商筛选:识别出邮件安全措施薄弱或不完善的供应商。
  • 定时监控:及时发现记录丢失或策略退化情况。
  • 问题分类处理:在工单中附上结构化的证据及有序的修复方案。
  • 对于监控工具而言,应同时保留稳定的检测结果标识与原始证据数据。只有在安全状况真正发生变化时才触发警报,而非分数仅波动一点时就报警。

    SPF、DKIM和DMARC检测工具常见问题解答

    SPF、DKIM和DMARC检测工具会测试什么?

    至少它会解析用于授权、签名及策略设置的公共DNS记录。更全面的检测还会检查MX路由、MTA-STS、TLS-RPT和BIMI等信息,随后返回收集到的证据并给出有序的建议。

    检测工具能自动找到所有DKIM记录吗?

    不行。每次查询都需要由发送端堆栈配置选择器,而公共 DNS 树并未列出所有正在使用的选择器。请尝试使用您的服务提供商文档中记载的选择器,或读取已到达邮件中的 DKIM-Signature 标头。

    通过 SPF、DKIM 和 DMARC 能保证邮件可送达吗?

    不能。通过这些认证措施是必要的基本要求,但邮件能否进入收件箱仍取决于信誉度、投诉与退信记录、内容质量、发送模式、用户互动情况,以及每封邮件的匹配程度。

    能否通过 API 自动化进行检查?

    可以。在账号注册、域名验证、供应商评估或定时监控过程中调用服务器端的检查工具是一种常见做法。请同时保存标准化状态码和原始证据数据,以便日后进行差异对比时仍能追溯。

    开始免费域名邮件安全审计

    同一托管审计服务可将全部控制功能整合在单次调用中。免费的Basic套餐(每月50次调用)已足够让用户在选择付费套餐之前查看完整的响应结构。

    可使用免费的RapidAPI套餐来调用接口,查看每次检查附带的证据,并根据问题严重程度而非仅凭数值评分来确定修复优先级。