Web applications Heroku应用程序验证来自Cloudmailin的请求

Web applications Heroku应用程序验证来自Cloudmailin的请求,web-applications,heroku,cloudmailin,Web Applications,Heroku,Cloudmailin,我在Heroku应用程序中使用Cloudmailin CloudMailin允许您通过HTTP POST请求在web应用程序中接收传入的电子邮件 在我的例子中,Cloudmailin在接收电子邮件时被配置为将它们发布到myapp.heroku.com/incoming_url 我注意到,任何人都可以跳过中间人,发布到/incoming\u url,刺激我的应用程序像收到电子邮件一样工作。因为我的应用程序会发送电子邮件,所以我担心它可能被滥用来发送垃圾邮件 我希望我的应用程序能够验证HTTP请求是

我在Heroku应用程序中使用Cloudmailin

CloudMailin允许您通过HTTP POST请求在web应用程序中接收传入的电子邮件

在我的例子中,Cloudmailin在接收电子邮件时被配置为将它们发布到
myapp.heroku.com/incoming_url

我注意到,任何人都可以跳过中间人,发布到
/incoming\u url
,刺激我的应用程序像收到电子邮件一样工作。因为我的应用程序会发送电子邮件,所以我担心它可能被滥用来发送垃圾邮件


我希望我的应用程序能够验证HTTP请求是否真正来自Cloudmailin(或我)。也许Cloudmailin可以以某种方式(在HTTP头或querystring中)对其HTTP请求进行签名。

Cloudmailin提供了两种实现方法:

  • 散列(仅在原始格式上停止)
  • HTTPS和基本身份验证(新推荐的方法)
如果您在CloudMailin中使用原始格式,那么它将通过哈希机制进行签名。CloudMailin与您共享一个密钥,该密钥用于散列通过CloudMailin HTTP Post发送的所有字段。这样,您就可以验证消息是否确实来自CloudMailin。可以找到有关此哈希的更多详细信息

但是,在较新的格式中,这一功能已停止,转而使用HTTPS和基本身份验证。哈希算法的设置可能有点复杂。因此,建议用户通过HTTPS向其站点发出请求,并通过基本身份验证。然后,您可以使用以下内容:

https://username:password@yourdomain.com/target

作为您将电子邮件发送到的位置。由于只有CloudMailin和您的站点知道用户名和密码,您可以拒绝这种类型的攻击,因此它还具有加密您的消息传输的好处,因此没有人可以窥探信息。

CloudMailin提供了两种方法来实现这一点:

  • 散列(仅在原始格式上停止)
  • HTTPS和基本身份验证(新推荐的方法)
如果您在CloudMailin中使用原始格式,那么它将通过哈希机制进行签名。CloudMailin与您共享一个密钥,该密钥用于散列通过CloudMailin HTTP Post发送的所有字段。这样,您就可以验证消息是否确实来自CloudMailin。可以找到有关此哈希的更多详细信息

但是,在较新的格式中,这一功能已停止,转而使用HTTPS和基本身份验证。哈希算法的设置可能有点复杂。因此,建议用户通过HTTPS向其站点发出请求,并通过基本身份验证。然后,您可以使用以下内容:

https://username:password@yourdomain.com/target

作为您将电子邮件发送到的位置。由于只有CloudMailin和您的站点知道用户名和密码,因此您可以拒绝此类攻击,它还具有加密您的消息传输的好处,因此没有人可以窥探信息。

谢谢!我只需要在URL框中输入凭据,这很酷,谢谢!我只是在URL框中修改凭据,这很酷