2013-10-06 3 views
1

Я хочу написать backend-приложение с REST API в django-tastypie для мобильных приложений.Как предотвратить использование ботов с помощью вызовов REST API для регистрации новых пользователей из мобильного приложения?

Если я отправляю данные POST (пользовательский объект), например, http://localhost:8000/api/v1/register/ из моего мобильного приложения, чтобы зарегистрировать нового пользователя, каждый, кто знает URL, может регистрировать новых пользователей и удалять мою базу данных. Как я могу предотвратить это? Использует ли REST-API для регистрации пользователя неправильный подход? Может ли кто-нибудь указать мне в правильном направлении? Я не хочу использовать OAuth для входа в мои пользователи.

+0

Er ... требуется, чтобы пользователь ответил на какой-то [CAPTCHA] (http: //en.w ikipedia.org/wiki/CAPTCHA)? Это не красиво, а де-факто конвенция. – Emissary

+0

Я не думаю, что captchas - это правильный путь для мобильных приложений. habe вы когда-либо видели это при регистрации в твиттере, facebook, instagram и т. д. на своем мобильном устройстве? – bq51

+0

Никогда не тестировали TBH. Хотя в последний раз, когда я проверил процесс регистрации на рабочем столе в Facebook, мобильный номер является более или менее требовательным - и у них есть система, в которой вы вводите четырехзначный код, чтобы убедиться, что это ваше устройство. CAPTCHA дешевый и веселый вариант (что не так, если вы показываете только один, если более одного запроса от одного и того же IP-адреса в течение короткого промежутка времени? Таким образом, вы не неудобствуете тех, кто, похоже, не злоупотребляет службой). – Emissary

ответ

0

все зависит от того, насколько надежно вы можете хранить данные на мобильном приложении ...

, если вы уверены, что вы можете иметь что-то надежно хранится на мобильных телефонах с вашим приложением, самым простым решением является установка -up аутентификацию сертификата на вашем внешнем сервере, в этом случае каждое соединение без надлежащего сертификата не сработает

Это довольно простое решение, которое не требует каких-либо изменений в вашем backend-коде, только небольшие изменения для клиентов (использование сертификата)