首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用SPF包括时,应用哪种SPF量化器?

当使用SPF包括时,应用哪种SPF量化器?
EN

Security用户
提问于 2018-02-06 23:27:58
回答 2查看 535关注 0票数 1

SPF记录具有多个标记,其中一个可以是include标记,SPF记录以像+?~-这样的量词结束。

当使用include标记时,包含的SPF记录有它自己的SPF量化符。让我们从包含的SPF记录中调用量词“子量化器”。

这个“子量词”是否只适用于它定义的主机,而“父量词”适用于除子定义主机之外的所有东西?还是父量词总是否决所有包含的(子)量词?

例如:

  1. say (假设父级)包含以下SPF记录:v=spf1 a include:example2.com -all
  2. say (比方说子)包含以下SPF记录:v=spf1 a ip4:1.2.3.4 ?all

现在,?all (子)量词还是-all (父-)量词适用于ip4:1.2.3.4

所包含的SPF记录也可能包括在内,因此它可以达到一个深度的多层次,我的问题也适用。

EN

回答 2

Security用户

回答已采纳

发布于 2018-02-07 04:06:49

使用include机制,“包含”SPF语句并不是字面上包含在原始语句中,而是只使用它的结果。来自RFC 7208第5.2节

事后看来,“包括”这个名字选择得很差。只使用引用SPF记录的评估结果,而不是在第一个引用记录中真正包括引用记录的机制。例如,在引用的记录中评估"-all“指令并不会终止整个处理,也不一定会导致总体”失败“。

这意味着,“包含”SPF语句的结果被视为matchnot matchpermerror,类似于其他SPF语句。标准甚至显式地包含一个表,“包含”SPF语句的结果如何影响主语句:

代码语言:javascript
复制
+---------------------------------+---------------------------------+
| A recursive check_host() result | Causes the "include" mechanism  |
| of:                             | to:                             |
+---------------------------------+---------------------------------+
| pass                            | match                           |
|                                 |                                 |
| fail                            | not match                       |
|                                 |                                 |
| softfail                        | not match                       |
|                                 |                                 |
| neutral                         | not match                       |
|                                 |                                 |
| temperror                       | return temperror                |
|                                 |                                 |
| permerror                       | return permerror                |
|                                 |                                 |
| none                            | return permerror                |
+---------------------------------+---------------------------------+
票数 2
EN

Security用户

发布于 2018-02-07 00:19:35

文档转换为您的示例:

在下面的示例中,客户端IP为1.2.3.4,当前域为example1.com。

v=spf1 include:example2.com -all

如果example2.com没有SPF记录,则结果是PermError。

假设example2.com的SPF记录是v=spf1 a -all

查一下例子2.com的A记录。如果与1.2.3.4匹配,则返回Pass。

如果没有匹配,除了example2.com的-all之外,包含作为一个整体失败;最终结果仍然是失败的外部指令集在这个例子。

信任关系-- include:机制旨在跨越管理边界。需要特别注意的是,确保include:机制不会使域处于将SPF传递结果传递给来自跨用户伪造的消息的风险。除非在指定的其他域设置了防止交叉用户伪造的技术机制,否则include:机制应该给出中立的结果,而不是传递的结果。这是通过在?前面添加include:来完成的。上面的例子是:

v=spf1 ?include:example.com -all

因此,信任被转移到“子”域(并且有限制这种影响的机制)。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/179272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档