В настоящее время у меня есть приложение для iOS, которое позволяет людям отправлять контент на наш сервер (например, в Twitter). У нас нет системы входа в систему, вместо этого мы полагаемся на UDID устройства для уникальной идентификации пользователей (да, мы знаем, что это не идеально, но стоит того, чтобы пользователи не создавали учетную запись).
Запросы из приложения iOS отправляются на наш сервер в виде POST-запросов и НЕ аутентифицируются каким-либо образом.
В настоящее время мы сталкиваемся с большим количеством спама (очевидно), и я ищу простой способ убедиться, что любой запрос, попадающий на наш сервер, действительно исходил от нашего приложения, а не от какого-то скрипта, написанного спамером.
Мы пытались использовать строку пользовательского агента, содержащую имя приложения, но ее легко подделать. Есть ли способ проверить, что запросы, поступающие на наш сервер, исходят от нашего приложения?
Одна из идей может заключаться в том, чтобы включить случайное число в качестве параметра, а затем зашифровать это число с помощью некоторого закрытого ключа. Попросите сервер убедиться, что зашифрованная версия = текстовой версии. (закрытый ключ должен быть на нашем сервере, а также встроен в приложение).
Я не ищу идеального решения - решение, которое легко реализовать на 90%, определенно предпочтительнее.
Спасибо!