3

我希望编写一个小服务,我将能够向我的服务器使用的特定地址发送电子邮件,以向我的服务器发送特定命令。

我将检查允许的电子邮件地址列表,以确保没有未经授权的人会向服务器发送命令,但我如何确保例如“mrzombie@thezombie.net”发送的电子邮件真的来自“thezombie.net”吗?

我想过检查原始电子邮件服务器 IP 的标头并 ping 域以确保它是相同的,但这可靠吗?

例子:

服务器收到来自 mrzombie@thezombie.net 的命令 mrzombie@thezombie.net 已授权,继续检查 服务器从标头检查“thezombie.net”的 IP:WXYZ 服务器 ping “thezombie.net”的 IP:ABCD IP不对应,不处理命令

有没有更好的方法来做到这一点?

4

3 回答 3

2

如果你能解决通用电子邮件的问题,你就解决了垃圾邮件的问题。

鉴于邮件标头是任何人都可以声明任何内容的自由格式文本,因此您不能基于邮件标头进行任何类型的授权或身份验证。最好的办法是对内容进行身份验证,并且有诸如S/MIMEPGP之类的协议。他们依靠密码学进行身份验证,您的服务器将能够验证内容是否由您信任的证书签名。但是您将把负担转移到必须发送正确签名的邮件的邮件发件人身上。大多数邮件阅读器虽然支持向内容添加数字签名。

于 2010-04-08T19:49:17.860 回答
1

但是我如何确保“mrzombie@thezombie.net”发送的电子邮件真的来自“thezombie.net”?

您可能还想查看Sender Policy Framework,因为它至少部分地尝试提供一种验证电子邮件是否从授权域服务器发送的方法。

Also, serverfault.com may have some helpful answers for you since it is a networking- and server-related question.

于 2010-04-08T19:53:23.113 回答
0

您可以使用SPF来验证给定 IP 是否被授权代表特定域发送电子邮件(当然,假设域实现了 SPF),但这仅能帮助您。例如,它可能不会阻止源域中的另一个用户冒充授权用户。

使用数字签名对内容进行身份验证确实是最好的方法。

于 2010-04-08T19:52:53.647 回答