SendGrid 传入邮件 Webhook - 如何保护我的端点

问题描述 投票:0回答:2

我目前正在使用 SendGrid 的入站解析 Webhook 将电子邮件发送到我的应用程序。我已经能够通过将 URL 指向我的应用程序公开的端点来使其工作。 SendGrid 只是以 JSON 格式 HTTP POST 请求的形式将电子邮件发送到此端点,我只是在内部处理每个请求。

我的问题是,现在我已经可以使用它了,如何确保只有 SendGrid 可以使用此端点?目前,任何人都可以利用此 HTTP POST 端点并假装电子邮件已发送到应用程序。

我可以让 SendGrid 发送某种唯一密钥来识别自己的身份吗?有没有办法可以通过ip地址来限制?

sendgrid webhooks endpoints
2个回答
33
投票

有两种方法可以保护您的端点。 SendGrid 的 webhooks 支持基本身份验证(例如

https://user:[email protected]/endpoint
)。您还可以实现一个唯一的密钥,在根据请求采取行动之前检查该密钥(例如
https://example.com/endpoint?key=123
)。

然而,简单的答案是,您添加到 URL 的任何内容都可以充当 SendGrid 的唯一身份验证。


0
投票

Sendgrid 支持建议使用反向 DNS 查找并确保生成的主机名属于 sendgrid.net。他们显然没有针对这些 webhook 的内置安全功能。

© www.soinside.com 2019 - 2024. All rights reserved.