Mekanisme yang ada dapat mewujudkannya SPF kebijakan bergantung pada nama DNS yang dikumpulkan dari input SMTP pesan. Hal ini memungkinkan adanya kebijakan yang lebih rinci, namun tetap memperjelas hal-hal yang ada catatan TXT deskripsi yang buruk tentang kueri sebenarnya atau implikasi privasinya.
Jangan menyetujui kebijakan makro karena kebijakan tersebut terlihat familier. Perluas untuk masukan yang representatif, identifikasi operator DNS yang menerima kueri, dan tentukan arti jawaban positif.
Pahami tes yang ada
ada memperluas spesifikasi domainnya dan melakukan kueri A-record. Ia melakukan ini bahkan untuk koneksi SMTP IPv6 . Jika ada Sebuah rekor dikembalikan, mekanismenya cocok; alamat yang dikembalikan tidak dibandingkan dengan IP penghubung. Jawaban hanya AAAA tidak memuaskan pencarian A itu. Melihat RFC 7208 bagian 5.7.
Di bawah normal + kualifikasi, pertandingan menghasilkan umpan. Nama hilang atau kosong. Jawaban tidak cocok; kesalahan DNS sementara harus ditangani sesuai dengan aturan kesalahan SPF , tidak diubah secara diam-diam menjadi keputusan otorisasi.
Perluas kueri sintetis dengan tangan
Asumsikan satu catatan valid, jawaban DNS berhasil, dan tidak ada batas yang terlampaui. Mempertimbangkan v=spf1 exists:%{ir}._permit.%{d} -all di example.com untuk koneksi IPv4 dari 192.0.2.9 . Makro i mewakili alamat masukan. Transformator r membalikkan bagian-bagiannya, dan d adalah domain evaluasi saat ini. Kueri yang diperluas adalah 9.2.0.192._permit.example.com.
Jika nama tersebut mengembalikan catatan A, seperti nilai ilustrasi 127.0.0.2 , maka akan ada kecocokan meskipun alamat tersebut berbeda dari 192.0.2.9 . Jika tidak ada catatan A dan tidak ada kesalahan yang menghalangi evaluasi, mekanismenya tidak cocok dan kebijakan mencapai -all .
Nilai A di sini hanyalah penanda jawaban positif. Arti keamanan berasal dari kendali namespace DNS yang ditanyakan dan aturannya untuk mengembalikan jawaban. Wildcard yang menjawab setiap kemungkinan kueri dapat secara tidak sengaja mengotorisasi setiap masukan yang mencapainya.
Membedakan identitas makro
Makro d adalah domain yang sedang dievaluasi. Makro o berasal dari domain pengirim, sedangkan l merujuk pada bagian lokal pengirim. Penyertaan atau pengalihan dapat mengubah konteks evaluasi, jadi jangan berasumsi d dan o tetap dapat dipertukarkan dalam suatu ketergantungan.
Transformator makro dapat memilih bagian, membalikkannya, dan mengubah pembatas. Ekspansi IPv6 bukanlah string desimal bertitik yang sama dengan IPv4 . Menggunakan RFC 7208 §7.2 Dan RFC 7208 §7.3 dan jejak implementasi untuk bentuk sebenarnya daripada menebak-nebak dari contoh IPv4 .
Nama melebar yang cacat dan label yang terlalu panjang memerlukan perhatian khusus. Di bawah RFC 7208 §4.8, spesifikasi mencatat perbedaan penerapan untuk beberapa hasil spesifikasi domain yang tidak valid. Pertahankan perlengkapan dalam sintaks DNS yang valid dan uji evaluator yang digunakan di lingkungan Anda; jangan mengklaim semua penerima menangani setiap masukan yang salah format secara sama.
Tinjau privasi dan ketersediaan
Seperti yang dijelaskan dalam RFC 7208 §11.6, makro yang menggunakan data bagian lokal atau pengirim lengkap dapat mengekspos informasi identitas terkait pesan melalui kueri DNS ke operator namespace dan infrastruktur DNS yang relevan. Tinjau data minimum yang diperlukan sebelum menggunakan desain seperti itu, terutama dengan layanan kebijakan pihak ketiga.
Kebijakan ini juga bergantung pada ketersediaan dan integritas sistem DNS penjawab. Catat siapa yang mengoperasikannya, bagaimana jawaban positif dihasilkan, bagaimana perubahan ditinjau dan apa yang terjadi selama pemadaman. Di bawah RFC 7208 §4.6.4, istilah penyebab permintaan DNS dan membatalkan pencarian tetap tunduk pada batasan SPF ; ada tidak memberikan panggilan kebijakan eksternal yang tidak terbatas.
Bangun perlengkapan penerimaan yang berguna
Uji masukan yang sah, masukan yang tidak sah, IPv6 jika digunakan, pemadaman DNS , dan komponen lokal pengirim yang valid namun tidak biasa jika hal itu memengaruhi kueri. Simpan nama yang diperluas, jenis kueri, jawaban DNS , dan hasil terminal SPF untuk setiap perlengkapan.
Uji juga perilaku wildcard dan perubahan pada zona target. Catatan dapat tetap benar secara sintaksis sementara layanan penjawab mengubah logika izinnya. Tutup tinjauan hanya jika keputusan DNS dapat dijelaskan dan direproduksi.
Kesimpulan praktisnya
Memang benar, pertanyaan DNS yang diperluas adalah bukti kebijakan. Tinjau masukannya, semantik jawaban, paparan privasi, dan perilaku kesalahan sebelum mengandalkan hasil yang dihasilkan.
Catat keputusan dan batasannya
Untuk masukan 192.0.2.9 yang sama, bedakan tiga perlengkapan: A= 127.0.0.2 memberikan kecocokan dan umpan yang memenuhi syarat default; jawaban kosong yang berhasil tidak memberikan kecocokan dan mencapai -all ; kesalahan DNS sementara mengakhiri evaluasi sebagai temperror daripada gagal. Aturan kesalahannya adalah RFC 7208 §5 Dan RFC 7208 §4.6.2. Ini adalah hasil yang diharapkan, bukan DNS yang diamati atau proses evaluator.