Как защитить «общедоступную» часть службы REST от спама?

У меня есть достаточно завершенная служба REST, которая будет использоваться с приложением iOS.Он построен с использованием Ruby / Sinatra, но я не думаю, что здесь это имеет значение.

Я использую базовую аутентификацию HTTP через SSL для различных конечных точек, и эта часть работает очень хорошо.

Вопрос: Как запретить спамерам и т. Д. Вызывать части службы REST, не защищенные с помощью базовой аутентификации HTTP?

Пример: Регистрация пользователя

Предположим, что вызов REST - (POST) ... / register_account передача объекта JSON в теле.

По очевидным причинам этот вызов не может ожидать, что имя пользователя / пароль будут связаны с учетной записью пользователя.

Идеи:

1) Приложение имеет собственное «имя пользователя» / пароль, и некоторые вызовы будут проверять учетные данные приложения. Проблема: рутирование устройства и т. Д. Может привести к обнаружению этих учетных данных.

2) Приложение передает секретный токен через HTTP-заголовок в службу REST для этих вызовов. Проблема: То же, что и (1)

Существуют ли какие-либо методы, обычно используемые для предотвращения таких спам-вызовов? Я думаю, что, возможно, добавлю идентификатор устройства iPhone в микс, но еще не определил конкретный подход.

Спасибо

17
задан Riaz 20 January 2012 в 19:17
поделиться