身份验证结果标头的 SPF resinfo 中的附加信息

问题描述 投票:0回答:1

我正在阅读 RFC 8601 (https://datatracker.ietf.org/doc/html/rfc8601) 并尝试理解 Authentication-Results 标头的语法。 但是,我无法理解

result
methodspec

以下是我收到的电子邮件:

Authentication-Results: mx.google.com;
       dkim=pass [email protected] header.s=scph header.b=SlxltaO2;
       spf=pass (google.com: domain of [email protected] designates 147.253.216.74 as permitted sender) [email protected];
       dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=uber.com

在上述情况下,标题可以细分如下:

  • authserv-id
    mx.google.com
  • authres-version
    :未在标题中指出
  • resinfo
    :标题中的三个树脂信息
    • resinfo (DKIM)
      • methodspec
        • method
          dkim
        • result
          pass
      • reasonspec
        :未注明
      • propspec
        [email protected]
        header.s=scph
        header.b=SlxltaO2
    • 树脂信息 (SPF)
      • methodspec
        • method
          spf
        • result
          pass
      • reasonspec
        :未注明
      • propspec
        [email protected]
    • resinfo (DMARC)
      • methodspec
        • method
          dmarc
        • result
          pass
      • reasonspec
        :未注明
      • propspec
        header.from=uber.com

问题:
什么是

(google.com: domain of [email protected] designates 147.253.216.74 as permitted sender)
(p=QUARANTINE sp=QUARANTINE dis=NONE)

根据 RFC 8601、RFC 5321 和 RFC 5234,

result
methodspec
定义如下。 所以
result
methodspec
只能是字母、数字和
-

result = Keyword

Keyword = Ldh-str
Ldh-str = *( ALPHA / DIGIT / "-" ) Let-dig
Let-dig = ALPHA / DIGIT

ALPHA = %x41-5A / %x61-7A   ; A-Z / a-z
DIGIT = %x30-39             ; 0-9

我预计它们是

result
methodspec
的一部分,但是,由于
(google.com: domain of [email protected] designates 147.253.216.74 as permitted sender)
(p=QUARANTINE sp=QUARANTINE dis=NONE)
包含符号和空格,它们不应该是
result
methodspec

我认为它们可能是

reasonspec
propspec
,但是,它们不遵循
reasonspec
propspec
的语法。

resinfo
被定义为
[CFWS] ";" methodspec [ CFWS reasonspec ] [ CFWS 1*propspec ]
,如果它们不是
methodspec
reasonspec
propspec
,那么它们是什么?它们在 RFC 的哪一部分中定义?

email spf dkim email-headers dmarc
1个回答
0
投票

括号中的元素是注释,根据 RFC5322 第 3.2.2 节,RFC8601 继承自:

括号内的字符串被视为注释

因此,在解释标头之前应将它们从标头值中剥离,这就是 RFC8601 第 2.1 节 所讨论的内容:

标头字段的值(删除注释后)包含 身份验证服务标识符、可选版本,然后是 一系列的陈述和支持数据。

请注意,注释可以嵌套,因此如果您尝试使用正则表达式删除/提取它们,请务必小心,因为表达式需要递归。

顺便说一句,一个写得很好的问题!

© www.soinside.com 2019 - 2024. All rights reserved.