Означает ли «~ all» в середине записи SPF конец записи, когда она анализируется?

9

Формат записи SPF нашей компании выглядит следующим образом:

"v = spf1 include: _spf.google.com ~ all mx ip4: XX0.0 / 23 include: spf.example.com? all"

Таким образом, у нас есть «~ all» в середине нашей записи SPF. На веб-сайте openspf.com они говорят о механизме «все»:

Этот механизм всегда совпадает. Обычно это происходит в конце записи SPF.

Таким образом, они не говорят, что «все» ДОЛЖНО идти в конце записи SPF, но что это ОБЫЧНО идет в конце.

В нашей компании в последнее время мы наблюдаем некоторые мягкие сбои в электронных письмах, отправленных с серверов, перечисленных в нашей записи SPF, однако наша запись SPF проходит все средства проверки, которые я обнаружил до сих пор.

Что мне интересно, так это то, может ли это «~ all» сразу после включения для Служб Google (_spf.google.com) привести к прекращению синтаксического анализа и не распознавать оставшиеся фрагменты записи SPF? Будет ли передача по сравнению с программным отказом зависеть от того, кто ее анализирует, и от их конкретной реализации того, как они обрабатывают записи SPF? Есть ли причина иметь механизм "все", который не находится в конце записи SPF?

И да, я знаю, что мы могли бы просто изменить нашу запись SPF. Этот вопрос больше о разъяснении того, как все это работает, и не обязательно о разрешении нашей конкретной ситуации.

whelanska
источник

Ответы:

11

В RFC 7208 § 5.1 прямо говорится об этом: после allпоявления все, что после него, ДОЛЖНО игнорироваться.

Механизмы после «всего» никогда не будут проверены. Механизмы, перечисленные после «всего», ДОЛЖНЫ игнорироваться. Любой модификатор «redirect» ( раздел 6.1 ) ДОЛЖЕН игнорироваться, когда в записи есть механизм «all», независимо от относительного упорядочения терминов.

RFC 4408 , в котором он устарел, говорит о том же; Более новая версия RFC просто проясняет намерение.

Механизмы после «всего» никогда не будут проверены. Любой модификатор «redirect» ( раздел 6.1 ) не действует, когда есть механизм «all».

Таким образом, соответствующие реализации SPF будут полностью игнорировать все после первой ~all. Это не означает, однако, что каждая реализация соответствует спецификации. В частности, это, вероятно, считалось заслуживающим пояснения именно потому, что одна или несколько реализаций не соответствовали.

Непонятно, почему онлайновый инструмент проверки не уловит эту неверную конфигурацию, но если вы собираетесь что-то allделать после первого использования, вам следует исправить запись, так как соответствующие реализации ее проигнорируют.

Майкл Хэмптон
источник
7

"v = spf1 include: _spf.google.com ~ all mx ip4: XX0.0 / 23 include: spf.example.com? all"

говорит по порядку:

"электронная почта с пропуском SPF _spf.google.comдействительна для нашего домена"

"softfail на всех других отправителей для нашего домена"

«Электронная почта из наших записей A действительна для нашего домена»

«Электронная почта из наших записей MX действительна для нашего домена»

«Электронная почта с диапазона IP-адресов x.x.0.0/23действительна для нашего домена»

"электронная почта с пропуском SPF spf.example.comдействительна для нашего домена"

«электронная почта от всех других отправителей для нашего домена не может быть проверена так или иначе»

В соответствии с синтаксисом записи:

Механизмы оцениваются по порядку. Если ни один из механизмов или модификаторов не соответствует, результатом по умолчанию является «Нейтральный».

Так что для вас, как только он достигнет «софтфайла для всех остальных», который на самом деле об этом ... он должен игнорировать остальные механизмы, которые вы указали.

Ваша запись SPF должна быть максимально краткой. Я очень сомневаюсь, что у вас есть целая сеть / 23, которая должна отправлять электронную почту для вашего домена, а также не все ваши записи А. Может и так ... но скорее всего нет.

Хорошая чистая SPF-запись должна выглядеть примерно так:

"v = spf1 include: _spf.google.com include: spf.example.com mx -all"

Что в основном говорит о том, что _spf.google.com, spf.example.com и ваши записи MX являются единственными действительными отправителями для вашего домена ... все остальное следует рассматривать как недействительные.

Очиститель
источник
0

Должным образом реализована SPF проверка будет короткое замыкание на механизм матч и функции check_host () возвращает значение квалификатора в качестве результата. У меня нет никаких данных «реального мира», чтобы предоставить вам информацию о том, следуют ли большинство почтовых серверов RFC или нет.

Источник: RFC7208 (см. Стр. 17).

рк.
источник