Có phải ~ ~ tất cả các dòng chữ ở giữa bản ghi SPF báo hiệu sự kết thúc của bản ghi khi được phân tích cú pháp không?


9

Định dạng bản ghi SPF của công ty chúng tôi như sau:

"v = spf1 bao gồm: _spf.google.com ~ tất cả mx ip4: XX0.0 / 23 bao gồm: spf.example.com? all"

Vì vậy, chúng tôi có một "~ tất cả" ở giữa bản ghi SPF của chúng tôi. Trên trang web openspf.com , họ nói điều này liên quan đến cơ chế "tất cả":

Cơ chế này luôn luôn phù hợp. Nó thường đi vào cuối bản ghi SPF.

Vì vậy, họ không nói "tất cả" ĐÃ đi vào cuối bản ghi SPF, nhưng điều đó KHÔNG CÓ HẠN ở cuối.

Tại công ty của chúng tôi, gần đây chúng tôi đã thấy một số lỗi mềm trong các email được gửi từ các máy chủ được liệt kê trong bản ghi SPF của chúng tôi, nhưng bản ghi SPF của chúng tôi vượt qua tất cả các công cụ xác thực mà tôi đã tìm thấy cho đến nay.

Điều tôi băn khoăn là, liệu "~ tất cả" này có trực tiếp sau bao gồm cho Google Apps (_spf.google.com) khiến việc phân tích cú pháp dừng lại và không nhận ra các phần còn lại của bản ghi SPF không? Việc vượt qua so với thất bại mềm phụ thuộc vào người phân tích cú pháp và cách triển khai cụ thể của họ về cách họ xử lý các bản ghi SPF? Có bất kỳ lý do để có một cơ chế "tất cả" không ở cuối bản ghi SPF?

Và vâng, tôi biết chúng ta có thể thay đổi bản ghi SPF của mình. Câu hỏi này là nhiều hơn về việc làm rõ tất cả những điều này hoạt động như thế nào và không nhất thiết là giải quyết tình huống cụ thể của chúng tôi.

Câu trả lời:


11

RFC 7208 § 5.1 là rõ ràng về điều này: sau khi allxuất hiện, mọi thứ sau nó PHẢI được bỏ qua.

Các cơ chế sau "tất cả" sẽ không bao giờ được kiểm tra. Các cơ chế được liệt kê sau "tất cả" PHẢI được bỏ qua. Bất kỳ công cụ sửa đổi "chuyển hướng" nào ( Phần 6.1 ) PHẢI được bỏ qua khi có cơ chế "tất cả" trong hồ sơ, bất kể thứ tự tương đối của các điều khoản.

RFC đã lỗi thời, RFC 4408 , đã nói nhiều điều tương tự; phiên bản mới hơn của RFC chỉ đơn giản là làm rõ ý định.

Các cơ chế sau "tất cả" sẽ không bao giờ được kiểm tra. Bất kỳ công cụ sửa đổi "chuyển hướng" nào ( Phần 6.1 ) không có hiệu lực khi có cơ chế "tất cả".

Vì vậy, việc thực hiện SPF phù hợp sẽ hoàn toàn bỏ qua mọi thứ sau lần đầu tiên ~all. Tuy nhiên, điều này không có nghĩa là mọi triển khai đều phù hợp với thông số kỹ thuật. Cụ thể, điều này có lẽ được cho là xứng đáng để làm rõ chính xác một hoặc nhiều triển khai không phù hợp.

Không rõ tại sao một công cụ xác thực trực tuyến sẽ không bắt được cấu hình sai này, nhưng nếu bạn có ý định cho bất cứ điều gì sau lần đầu tiên allđược sử dụng, bạn nên sửa bản ghi, vì việc triển khai đúng sẽ bỏ qua nó.


7

"v = spf1 bao gồm: _spf.google.com ~ tất cả mx ip4: XX0.0 / 23 bao gồm: spf.example.com? all"

nói theo thứ tự:

"email vượt qua bản ghi SPF _spf.google.comlà hợp lệ cho miền của chúng tôi"

"softfail trên tất cả những người gửi khác cho miền của chúng tôi"

"email đến từ hồ sơ A của chúng tôi là hợp lệ cho miền của chúng tôi"

"email đến từ các bản ghi MX của chúng tôi là hợp lệ cho miền của chúng tôi"

"email đến từ dải IP x.x.0.0/23hợp lệ cho miền của chúng tôi"

"email vượt qua bản ghi SPF spf.example.comlà hợp lệ cho miền của chúng tôi"

"email từ tất cả người gửi khác cho miền của chúng tôi không thể được xác thực theo cách này hay cách khác"

Theo cú pháp Record:

Các cơ chế được đánh giá theo thứ tự. Nếu không có cơ chế hoặc công cụ sửa đổi nào khớp, kết quả mặc định là "Trung lập".

Vì vậy, đối với bạn một khi nó chạm vào "phần mềm mềm cho tất cả những người khác" thực sự là về nó ... thì nên bỏ qua phần còn lại của các cơ chế bạn đã chỉ định.

Bản ghi SPF của bạn nên ngắn gọn nhất có thể. Tôi rất nghi ngờ bạn có toàn bộ / 23 mạng nên gửi email cho tên miền của bạn, cũng như tất cả các bản ghi A của bạn. Có lẽ vậy ... nhưng rất có thể là không.

Một bản ghi SPF sạch đẹp sẽ trông giống như:

"v = spf1 bao gồm: _spf.google.com bao gồm: spf.example.com mx -all"

Về cơ bản sẽ nói rằng _spf.google.com, spf.example.com và các bản ghi MX của bạn là những người gửi hợp lệ duy nhất cho tên miền của bạn ... mọi thứ khác nên được coi là không hợp lệ.


0

Một thực hiện đúng trình kiểm tra SPF sẽ ngắn mạch trên một cơ chế phù hợp và chức năng check_host () sẽ trả về giá trị vòng loại như kết quả. Tôi không có bất kỳ dữ liệu "thế giới thực" nào để cung cấp cho bạn về việc hầu hết các máy chủ email có tuân theo RFC hay không.

Nguồn: RFC7208 (xem trang 17)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.