Eposta ile ilgili pekçok şey gibi, kötü niyetlilerin protokolü hizmet reddi (DoS) saldırıları için bir bulvar olarak kullanabileceği bazı yöntemler vardır. Burada anahatlarıyla ele alınacak olan işlem sınırları şu tür saldırılardan korunmak için tasarlanmıştır:
Kötü niyetli biri, mağdurun alanına atıflarda bulunan bir SPF kaydı oluşturabilir ve farklı SPF istemcilerine çok sayıda posta gönderebilir; bu SPF istemcileri bir hizmet reddi saldırısı oluştururlar. Aslında, SMTP oturumunda DNS sorgularında kullanılandan daha az bayt kullanılmasını sağlayarak, SPF istemcileri saldırganın band genişliğini arttırmakta kullanılmış olurlar.
DNS sorgularının sayısını sınırladığı varsayılan check_host() gerçeklenimlerinin olduğu yerlerde, kötü niyetli alanlar posta gönderdikleri zaman, hedeflerinde boş hesaplama çabasına yol açarak bu sınırların aşılmasına sebep olan kayıtlar yayınlayabilirler. Kötü niyetli alanlar ayrıca, bazı gerçeklenimlerin üşırı bellek ve işlemci kullanmasına veya hataların tetiklenmesine yol açan SPF kayıtları tasarlayabilirler.
Kötü niyetli alanlar, geniş çaplıa meşru posta konaklarından geliyormuş gibi görünen büyük hacimde posta gönderebilirler. Bu meşru makineler ilgili kayıtları almak isterken aşırı bir DNS yükü oluşmasına sebebiyet verirler.
Bunlardan dolayı, SPF kaydında bir üçüncü tarafa atıfta bulunulması durumu bir hizmet reddi saldırısı için en kolay istismar edilen durumdur. Sonuç olarak, tek başına bir posta sunucusu için makul görünebilen sınırlar, çok sayıda konak bir araya geldiğinde kabul edilemez miktarda band genişliği harcanmasını sebep olabilir. Bu bakımdan, işlem sınırlarının oldukça düşük tutulmasına ihtiyaç duyulur.
SPF gerçeklenimleri, DNS sorgusuna yol açan mekanizmaların ve değiştiricilerin sayısını SPF sınaması başına en fazla 10 sorgu olabilecek şekildi sınırlamalıdır. Bunlara, kullanımları ek sorgulara yol açan "include" mekanizması ve "redirect" değiştiricisi dahildir. Bir sınama sırasında bu miktar aşılırsa, bir "PermError" dönmelidir *ZORUNLU*. "redirect" değiştiricisinden başka "include", "a", "mx", "ptr" ve "exists" mekanizmaları da bu sınırla ilgilidir. "all", "ip4" ve "ip6" mekanizmaları DNS sorgusu gerektirmezler ve dolayısıyla bu sınırla ilgili sayıya dahil edilmezler. "exp" değiştiricisi de bu sayıya dahil edilmez, çünkü bunun DNS sorgusu SPF kaydı değerlendirildikten sonra yapılır.
"mx" ve "ptr" mekanizmaları veya %{p} makrosu değerlendirilirken 10'dan fazla MX ve PTR kaydı sorgusu ve sınaması yapılamaması için bir sınırlama olmalıdır *ZORUNLU*.
SPF gerçeklenimleri, DNS sorgularından sağlanacak toplam veri miktarını sınırlamalıdırlar *ÖNERİ*. Örneğin, TCP üzerinden DNS veya EDNS0 mümkün olduğunda, aşırı band genişliği veya bellek kullanımından veya hizmet reddi saldırılarından kaçınmak için ne kadar veri kabul edilebileceği ile ilgili açıkça bir sınırlama koymak ihtiyacı ortaya çıkabilir.
MTA'lar veya işlemciler ayrıca, check_host() işlevinin işlem yapma süresine bir sınırlama getirebilirler. Böyle bir sınırlamanın en azından 20 saniyelik bir süre sağlaması gerekir *ÖNERİ*. Bu sınır aşıldığında, sınama sonucu "TempError" olmalıdır *ÖNERİ*.
Kayıt yayınlayan alanlar "include" mekanizması sayısını ve "redirect" değiştiricisi zincirini olası en düşük miktarda tutmaya çalışmalıdırlar *ÖNERİ*. Alanlar ayrıca, bir kaydın değerlendirilme ihtiyacını ortaya çıkaran DNS bilgisi mitarını da azaltmaya çalışmalıdırlar *ÖNERİ*. Bu, daha az DNS bilgisi gerektiren yönergeler seçilerek ve SPF kayıtlarına ucuz maliyetli mekanizmalar yerleştirilerek yapılabilir.
Örneğin, şöyle bir alan ayarlaması yapılmış olsun:
example.com. IN MX 10 mx.example.com.
mx.example.com. IN A 192.0.2.1
a.example.com. IN TXT "v=spf1 mx:example.com -all"
b.example.com. IN TXT "v=spf1 a:mx.example.com -all"
c.example.com. IN TXT "v=spf1 ip4:192.0.2.1 -all"
"a.example.com" alanı için check_host() işlevinin değerlendirmesi, "example.com" için MX kayıtlarını ve ardından listelenen konaklar için A kayıtlarını gerektirir. "b.example.com" için yapılan değerlendirme ise, sadece A kayıtları gerektirir. "c.example.com" için ise hiçbir şey gerekmez.
Bununla birlikte, yönetimsel değerlendirmeler sözkonusu olabilir: "ip4" yerine "a" kullanımı konakların yeniden numaralanmasını kolaylaştırır. "a" yerine "mx" kullanmak da posta konaklarında kolayca değişiklik yapılabilmesini sağlar.