我希望编写一个小服务代码,我可以将电子邮件发送到服务器使用的特定地址,以便将特定命令发送到我的服务器。
我会检查一个允许的电子邮件地址列表,以确保没有人会将未经授权的命令发送到服务器,但我如何确保,例如,“mrzombie @ thezombie”发送的电子邮件.net“真的来自”thezombie.net“?
我考虑过检查原始电子邮件服务器IP的标头并ping域名以确保它是相同的,但这是否可靠?
示例:
服务器从mrzombie@thezombie.net收到命令 mrzombie@thezombie.net获得授权,继续进行检查 服务器从标题中检查“thezombie.net”的IP:W.X.Y.Z 服务器为它的IP ping“thezombie.net”:A.B.C.D IP不对应,不处理命令
有没有更好的方法呢?
答案 0 :(得分:2)
如果你可以解决一般电子邮件的问题,你就解决了垃圾邮件的问题。
鉴于邮件标题是任意人都可以声明任何内容的自由格式文本,您不能根据邮件标题进行任何类型的授权或身份验证。您最好的选择是对内容进行身份验证,并且有S/MIME或PGP之类的协议。他们依靠加密进行身份验证,您的服务器将能够验证内容是否由您信任的证书签名。但是,您将减轻必须发送正确签名邮件的邮件发件人的负担。大多数邮件阅读器虽然支持向内容添加数字签名。
答案 1 :(得分:1)
但我如何确保,比如说 发送的电子邮件 “mrzombie@thezombie.net”真的来了 来自“thezombie.net”?
您还可以查看Sender Policy Framework,因为它至少部分地试图提供验证电子邮件是否从授权域服务器发送的方法。
此外,serverfault.com可能会为您提供一些有用的答案,因为它是与网络和服务器相关的问题。
答案 2 :(得分:0)
您可以使用SPF来验证给定的IP是否有权代表特定域发送电子邮件(假设该域实现了SPF),但这只能让您到目前为止。例如,它可能无法阻止源域中的其他用户冒充授权用户。
使用数字签名验证内容确实是最好的方法。