Защита внешнего API EndPoint для службы веб-API ASP.NET (ASP.NET 4.6) - PullRequest
0 голосов
/ 13 марта 2019

Я создаю внешнюю конечную точку API, которая будет отправлять уведомления по электронной почте подписчикам. Когда идентификатор абонента (50 символов) и строка сообщения передаются на конечную точку, служба отправит сообщение по электронной почте на адрес электронной почты подписчика. Из-за характера службы ее нельзя заблокировать по IP-адресу или файлу сертификата или использовать OAuth2. Третья сторона будет получать доступ к этой конечной точке с помощью сообщений для рассылки подписчикам.

В настоящее время насчитывается более 100 000 подписчиков, каковы шансы, если злонамеренный пользователь найдет эту конечную точку, чтобы он мог случайным образом попробовать subscriberIds и найти действительные и начать отправлять им электронные письма, учитывая тот факт, что идентификатор имеет длину 50+ символов и существует около 100000 действительных идентификаторов подписчиков.

Каковы мои лучшие варианты для защиты этой конечной точки API? Вот мои мысли на данный момент: либо добавьте ключ API, который знает только третья сторона, и который будет отправлять при каждом запросе, и / или генерировать токен для каждого подписчика, сохранять его в базе данных, а затем на конечной точке требовать их

1 Ответ

1 голос
/ 13 марта 2019

Хорошим решением для защиты веб-API является использование JWT Если вы строите свой веб-API с помощью ASP.NET Core, его гораздо проще использовать, так как это встроенная функция.

Кроме того, есть ли у вас ограничения по количеству электронных писем, которые может отправить подписчик?Хорошей идеей может быть установление порога для каждого пользователя (каждую минуту, ежечасно, ежедневно и т. Д.), Чтобы избежать спама со стороны злоумышленника, имеющего доступ к вашему веб-API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...