У меня есть достаточно завершенная служба REST, которая будет использоваться с приложением iOS.Он построен с использованием Ruby / Sinatra, но я не думаю, что здесь это имеет значение.
Я использую базовую аутентификацию HTTP через SSL для различных конечных точек, и эта часть работает очень хорошо.
Вопрос: Как запретить спамерам и т. Д. Вызывать части службы REST, не защищенные с помощью базовой аутентификации HTTP?
Пример: Регистрация пользователя
Предположим, что вызов REST - (POST) ... / register_account передача объекта JSON в теле.
По очевидным причинам этот вызов не может ожидать, что имя пользователя / пароль будут связаны с учетной записью пользователя.
Идеи:
1) Приложение имеет собственное «имя пользователя» / пароль, и некоторые вызовы будут проверять учетные данные приложения. Проблема: рутирование устройства и т. Д. Может привести к обнаружению этих учетных данных.
2) Приложение передает секретный токен через HTTP-заголовок в службу REST для этих вызовов. Проблема: То же, что и (1)
Существуют ли какие-либо методы, обычно используемые для предотвращения таких спам-вызовов? Я думаю, что, возможно, добавлю идентификатор устройства iPhone в микс, но еще не определил конкретный подход.
Спасибо