我正在構建一個具有消息傳遞系統的平臺。檢查請求源和驗證電子郵件發件人 - Node.js
我想發佈郵件中的消息,爲此我在Mailgun上創建了一個將郵件重定向到我的API的路由。
這部分工作正常,但我需要在將消息發佈到我的平臺之前驗證請求。我會看到發件人的電子郵件在我的數據庫中查看郵件的作者和電子郵件的目標,以選擇將接收郵件的配置文件組。
所以,一個例子: 如果我收到一封電子郵件,
from: [email protected]
to: [email protected]
message: Lorem ipsum dolor sit amet, consectetur adipiscing elit...
我會檢查「[email protected]」在我的數據庫,看看他是否可以張貼到「組」,如果是我將郵件發送給它。
的問題是,我需要驗證兩件事情:
- 如果我的API請求真正從Mailgun出來,避免欺騙
- 檢查電子郵件的發送者是真實的,沒有任何垃圾郵件
做的第一件,我看到,我可以用req.connection.remoteAddress節點上拿到的起源,然後我試圖做一個反向查找上IP,看它是否來自Mailgun,但反向查找什麼也沒有發現。
爲了驗證我看到了,我可以用收到標題上的電子郵件的電子郵件的起源,然後我想到了一個DNS查詢檢查,看看他們是否MX記錄相匹配。
我對這個真的很陌生,我的問題是,有沒有更簡單的方法來驗證這兩個步驟,它是否安全?