Apakah "~ semua" di tengah catatan SPF menandakan akhir catatan ketika diuraikan?

9

Format catatan SPF perusahaan kami adalah sebagai berikut:

"v = spf1 termasuk: _spf.google.com ~ semua a mx ip4: XX0.0 / 23 termasuk: spf.example.com? semua"

Jadi kami memiliki "~ semua" di tengah catatan SPF kami. Di situs web openspf.com , mereka mengatakan ini mengenai mekanisme "semua":

Mekanisme ini selalu cocok. Biasanya terjadi di akhir catatan SPF.

Jadi, mereka tidak mengatakan "semua" HARUS pergi pada akhir catatan SPF, tetapi itu BIASANYA berjalan di akhir.

Di perusahaan kami, akhir-akhir ini kami telah melihat beberapa kegagalan lunak dalam email yang dikirim dari server yang tercantum dalam catatan SPF kami, namun catatan SPF kami melewati semua alat validasi yang saya temukan sejauh ini.

Yang saya bertanya-tanya adalah, apakah "~ semua" ini secara langsung setelah menyertakan untuk Google Apps (_spf.google.com) menyebabkan penguraian berhenti dan tidak mengenali bagian yang tersisa dari catatan SPF? Akankah passing vs. gagal-lunak tergantung pada siapa yang menguraikannya dan implementasi spesifik mereka tentang bagaimana mereka memproses catatan SPF? Apakah ada alasan untuk memiliki mekanisme "semua" yang tidak ada di akhir catatan SPF?

Dan ya, saya tahu kami bisa mengubah catatan SPF kami. Pertanyaan ini lebih lanjut tentang mengklarifikasi bagaimana semua ini bekerja dan tidak selalu tentang menyelesaikan situasi khusus kita.

whelanska
sumber

Jawaban:

11

RFC 7208 § 5.1 eksplisit tentang ini: setelah allmuncul, semuanya setelah itu HARUS diabaikan.

Mekanisme setelah "semua" tidak akan pernah diuji. Mekanisme yang terdaftar setelah "semua" HARUS diabaikan. Setiap pengubah "pengalihan" ( Bagian 6.1 ) HARUS diabaikan ketika ada mekanisme "semua" dalam catatan, terlepas dari urutan relatif dari persyaratan.

RFC yang sudah usang, RFC 4408 , mengatakan banyak hal yang sama; versi terbaru RFC hanya menjelaskan maksudnya.

Mekanisme setelah "semua" tidak akan pernah diuji. Setiap pengubah "redirect" ( Bagian 6.1 ) tidak memiliki efek ketika ada mekanisme "semua".

Jadi, menyesuaikan implementasi SPF akan sepenuhnya mengabaikan segalanya setelah yang pertama ~all. Namun ini tidak berarti bahwa setiap implementasi sesuai dengan spesifikasi. Secara khusus, ini mungkin dianggap layak untuk klarifikasi tepat karena satu atau lebih implementasi tidak sesuai.

Sama sekali tidak jelas mengapa alat validasi online tidak akan menangkap kesalahan konfigurasi ini, tetapi jika Anda berniat untuk sesuatu setelah yang pertama alldigunakan, Anda harus memperbaiki catatan, karena implementasi yang tepat akan mengabaikannya.

Michael Hampton
sumber
7

"v = spf1 termasuk: _spf.google.com ~ semua a mx ip4: XX0.0 / 23 termasuk: spf.example.com? semua"

mengatakan dalam urutan:

"Email yang melewati catatan SPF _spf.google.comvalid untuk domain kami"

"kegagalan lunak pada semua pengirim lain untuk domain kami"

"email yang berasal dari catatan A kami valid untuk domain kami"

"email yang berasal dari catatan MX kami valid untuk domain kami"

"email yang berasal dari rentang IP x.x.0.0/23valid untuk domain kami"

"Email yang melewati catatan SPF spf.example.comvalid untuk domain kami"

"email dari semua pengirim lain untuk domain kami tidak dapat divalidasi dengan satu atau lain cara"

Per sintaks Rekam:

Mekanisme dievaluasi secara berurutan. Jika tidak ada mekanisme atau pengubah yang cocok, hasil default adalah "Netral".

Jadi untuk Anda setelah menyentuh "kegagalan lunak untuk semua yang lain" itu benar-benar tentang itu ... itu harus mengabaikan sisa mekanisme yang Anda tentukan.

Catatan SPF Anda harus sejelas mungkin. Saya sangat ragu Anda memiliki seluruh / 23 jaringan yang seharusnya mengirim email untuk domain Anda, dan juga tidak semua catatan A Anda. Mungkin begitu ... tetapi kemungkinan besar tidak.

Catatan SPF bersih yang bagus akan terlihat seperti:

"v = spf1 sertakan: _spf.google.com sertakan: spf.example.com mx -semua"

Yang pada dasarnya akan mengatakan bahwa _spf.google.com, spf.example.com, dan data MX Anda adalah satu-satunya pengirim yang valid untuk domain Anda ... semua yang lain harus dianggap tidak valid.

Pembersih
sumber
0

Pemeriksa SPF yang diimplementasikan dengan benar akan mengalami hubungan pendek pada kecocokan mekanisme dan fungsi check_host () akan mengembalikan nilai kualifikasi sebagai hasilnya. Saya tidak punya data "dunia nyata" untuk diberikan kepada Anda mengenai apakah sebagian besar server email mengikuti RFC atau tidak.

Sumber: RFC7208 (lihat halaman 17)

pk.
sumber