Кнопка «Стать клиентом» на моем веб-сайте требует, чтобы конечная точка POST customer была общедоступной. Я не хочу, чтобы она была общедоступной. Как мне обойти это?

#python #rest #flask #jwt #flask-jwt

#python #rest #flask #jwt #flask-jwt

Вопрос:

У меня есть веб-приложение, связывающееся с серверной частью через пару конечных точек REST.

У меня также есть домашняя страница, где люди могут стать клиентами вышеупомянутого веб-приложения.

Для вызова всех конечных точек веб-приложения требуется аутентификация (авторизованный пользователь) (токены JWT), но на моей домашней странице у меня есть кнопка «Стать клиентом», которая делает POST /customers запрос, который я должен оставить общедоступным (Но я не хочу, чтобы кто-либо мог спамить мою конечную точку новыми клиентами.

Каков стандартный способ решения этой проблемы?

Я использую Python, Flask и Flask-JWT в своем бэкэнде.

Комментарии:

1. CAPTCHA и ограничение скорости являются типичными средствами защиты от DOS-атак.

2. Вы не можете. Вы действительно думаете, что у основных сервисов (Facebook, Twitter, Instagram …) нет поддельных пользователей, которые были автоматически созданы путем рассылки спама с помощью кнопки регистрации? Вы могли бы добавить reCAPTCHA или что-то подобное, чтобы смягчить это, но есть вероятность, что вы не сможете полностью остановить это.

Ответ №1:

Единственным вариантом будет роль пользователя, которая добавляется на ограниченное время (30 минут). Если у пользователя есть эта роль, то у него есть разрешение на ее просмотр.

Имеет смысл?