允许用户通过我们的服务器发送任意电子邮件是多么糟糕的主意

时间:2016-10-19 09:46:16

标签: email security server

我的公司正在开发云联系管理服务,在我们的iOS应用程序中,当用户按下"电子邮件"时,我们在启动特定企业电子邮件客户端应用程序时遇到一些问题。他们的一个联系人按钮。

我们团队的一位成员提出了解决此企业应用程序问题的想法: 我们让用户在应用程序的设置中指定他们的电子邮件地址,并创建我们自己的电子邮件撰写屏幕。点击联系人上的电子邮件按钮将打开撰写屏幕,他们将编写他们的消息,然后我们将代表他们从我们的服务器(或通过像mailchimp这样的服务)发送它。

基本上,这意味着我们必须在我们的api上创建一个端点,该端点接受来自','到',' subject&#39的POST请求;和'身体'将发送相应电子邮件的字段。

这似乎是一个非常糟糕的主意,因为它本质上创建了一个免费的,匿名的电子邮件服务,很容易被滥用发送垃圾邮件。

关于我们设置的一些额外说明:

  • 我们在注册时未验证帐户电子邮件
  • 即使我们确实验证了帐户的电子邮件,用户也需要能够指定任何电子邮件,因为他们可能已使用个人电子邮件注册,但希望通过其工作电子邮件向某人发送电子邮件。
  • 我们的API目前没有任何速率限制
  • 我们可以改为发送他们想要发送电子邮件的联系人的ID,而不是在请求中包含from字段。这并没有真正改变任何事情,因为如果有人想滥用发送电子邮件端点,他们也可以滥用创建联系人端点。

这究竟有多糟糕,我怎么能说服我的团队不要这样做呢?

1 个答案:

答案 0 :(得分:2)

反对这样做的一些想法:

  • 这是一种完美的垃圾邮件服务,可能会损害贵公司的声誉(声誉风险)。
  • 您的电子邮件服务器会很快变成黑名单(RBL),使您的外发电子邮件落入很多收件人邮箱的垃圾邮件文件夹中。
  • 即使您的服务器尚未使用RBL,如果您发送此类伪造电子邮件并在收件人端设置了正确的电子邮件安全性,您的电子邮件仍有很大机会被归类为垃圾邮件。请查看thingsSPFDKIM
  • 这甚至可能具有法律意义。想象一下,当您的某个用户将此服务用于勒索之类的情况时。你能证明这不是你吗?对于正确的控制可能是肯定的,但你想要麻烦吗?
  • 仍然在法律方面,许多国家(主要是欧盟)都有数据保护法规,严格控制电子邮件地址等个人数据的使用方式,尤其是商业广告。你可能想要坚持这一点,但这对于这样的服务来说会很难(请注意,我不是律师,在这种情况下,它可能是你的服务的滥用者会违反这些规定而不是你,我不是'我知道,但这是值得考虑的事情。)
  • 如果任何人都可以发送电子邮件,那么对您的服务执行拒绝服务攻击会相当容易。

您可以实施一些控制来降低某些风险:

  • 添加发件人(发件人)地址时,您应通过例如发送(加密随机)令牌并检查用户是否可以将其发回(例如,通过单击电子邮件中的链接)来验证。如果可以,那在某种程度上证明他控制了电子邮件地址,并且可能是有效的发件人。
  • 如果可以,请限制可能的收件人地址。最好的情况是,收件人必须选择接收电子邮件。如果无法做到这一点,至少让收件人选择退出其他电子邮件。为此,您必须向具有“从不再次”链接的电子邮件添加类似页脚的内容,并实施一个工具来维护您不能再发送的收件人。
  • 实施速率限制。根据您的具体情况和用例,只允许发送应用程序可接受的最少数量的电子邮件。
  • 实施正确的日志记录,以便您拥有一个审核日志,其中包含确切地向谁发送了哪些电子邮件。为此,还要记录IP地址等元数据。为此,您可能需要对用户进行身份验证。
  • 在操作层面,进行监控,并准备根据与您的用户共享的明确ToS禁止违规用户。