基于电子邮件的身份验证 "from address"

Authentication based on email "from address"

我有一个应用程序可以读取特定电子邮件地址收到的传入电子邮件。然后应用程序根据电子邮件的内容进行业务交易。

目前,该应用程序仅对“发件人地址”(与列入白名单的地址列表)进行字符串比较,以检查请求是否来自有效来源。

但是,这样安全吗?未经授权的人是否可以从电子邮件 ID 发送欺骗性电子邮件,而无需访问该电子邮件?

不,这不安全;发件人很容易被欺骗。发件人应该 authenticate their emails and as the recipient, you should verify that the email is authentic. If your incoming mail server adds (or can add when configured appropriately) an Authentication-Results header field(并删除现有的此类 header 字段),这可能是简单地依赖此字段而不是自己验证任何内容的最简单方法。

忽略 transport security 的问题,另一种方法可能是在消息中简单地包含一个秘密令牌(body 或某些 header 字段 – 或者甚至在本地部分两个邮件地址)。

请注意,这两种方法都需要完全信任发件人和收件人的邮箱提供商。如果这对您的威胁模型来说是不可接受的,您应该考虑 end-to-end security 或完全废除这个想法。