SendGrid входящая почта webhook - как защитить свою конечную точку

В настоящее время я использую входящий синтаксический анализ SendGrid для подачи электронных писем в свое приложение. Я смог заставить его работать, указав URL-адрес на конечную точку, которую открыло мое приложение. SendGrid просто отправляет электронное письмо в виде HTTP-запроса POST в формате JSON на эту конечную точку, и я просто обрабатываю каждый запрос внутренне.

Мой вопрос: теперь, когда он работает, как я могу гарантировать, что только SendGrid может использовать эту конечную точку? В настоящее время любой может использовать эту конечную точку HTTP POST и делать вид, что электронное письмо было отправлено приложению.

Могу ли я заставить SendGrid отправить какой-то уникальный ключ для идентификации себя? Есть ли способ, которым я могу ограничить по IP-адресу?

2 ответа

Решение

Есть два способа защитить конечную точку. WebGooks SendGrid поддерживают базовую аутентификацию (например, https://user:pass@example.com/endpoint). Вы также можете реализовать уникальный ключ, который вы проверяете, прежде чем действовать по запросу (например, https://example.com/endpoint?key=123).

Простой ответ, однако, заключается в том, что все, что вы добавляете в URL, может выступать в качестве уникальной аутентификации для SendGrid.

Поддержка Sendgrid предлагает использовать обратный поиск DNS и гарантировать, что полученное имя хоста принадлежит sendgrid.net. Очевидно, у них нет встроенных функций безопасности для этих веб-перехватчиков.

Другие вопросы по тегам