You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP自动获取任意域名的DKIM选择器以查询DKIM记录?

解决DKIM Selector自动获取的问题

首先得明确:没有100%通用的方法能自动获取任意域名的DKIM Selector,因为Selector是域名所有者自行定义的,没有强制的公共注册目录。但可以通过以下几种常见方式尝试探测:

1. 从DMARC记录中提取线索

部分域名会在DMARC记录的rua或ruf报告地址里附带Selector信息,比如格式可能是rua=mailto:dmarc-report@example.com?subject=dmarc&dkim=selector1。你可以解析DMARC记录的文本内容,提取这类参数。

示例PHP代码:

$domaine = "example.com";
// 先获取DMARC记录并做安全处理
$safeDomain = escapeshellarg($domaine);
$dmarcRaw = shell_exec('nslookup -type=txt _dmarc.'.$safeDomain);
$dmarcRecords = [];
// 提取有效的DMARC TXT记录
preg_match_all('/"([^"]+)/', $dmarcRaw, $matches);
foreach ($matches[1] as $match) {
    if (str_starts_with($match, "v=DMARC1")) {
        $dmarcRecords[] = $match;
    }
}

// 尝试从DMARC记录中提取selector
$foundSelectors = [];
foreach ($dmarcRecords as $record) {
    if (preg_match('/dkim=([a-zA-Z0-9_-]+)/', $record, $selMatch)) {
        $foundSelectors[] = $selMatch[1];
    }
}

2. 尝试通用常见Selector命名

很多域名会使用一些通用的Selector名称,你可以遍历这些常见值,逐个查询是否存在对应的DKIM记录。

常见的通用Selector列表:default, mail, selector1, selector2, dkim, smtp, postmaster, mx, s1, s2

示例PHP代码:

$commonSelectors = ["default", "mail", "selector1", "selector2", "dkim", "smtp", "postmaster"];
$domaine = "example.com";
$dkimRecords = [];

foreach ($commonSelectors as $selector) {
    // 必须做安全处理,防止命令注入
    $safeSelector = escapeshellarg($selector);
    $safeDomain = escapeshellarg($domaine);
    $dkimRaw = shell_exec("dig $safeSelector._domainkey.$safeDomain txt +short");
    if (!empty(trim($dkimRaw))) {
        $dkimRecords[$selector] = trim($dkimRaw);
    }
}

// 输出找到的DKIM记录
print_r($dkimRecords);

3. 解析目标域名的邮件头(需邮件样本)

如果能获取到该域名发送的邮件,可以解析邮件头中的DKIM-Signature字段,其中s=后面的值就是Selector。比如:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=selector1; ...

但这种方法依赖邮件样本,不适合无样本的批量自动扫描场景。

重要注意事项

  • 所有传入shell命令的参数(比如域名、selector)必须用escapeshellarg()处理,防止命令注入漏洞,这是你当前代码里缺失的关键安全步骤。
  • 以上方法都无法保证覆盖所有域名,因为有些域名会使用非常独特的Selector名称,或者根本没有配置DKIM记录。

内容的提问来源于stack exchange,提问作者Israel Bara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 13:10:29