приложение для iphone - защита от спама

Я разработал приложение, которое позволяет пользователям загружать некоторые фотографии и делиться ими на Facebook/Dropbox/Twitter и т. д. Недавно оно появилось в магазине приложений.

Однако сейчас у меня проблема: бот создает учетные записи и загружает много фотографий на мой сервер. Я временно отключил приложение, но теперь я ищу эффективный способ предотвратить это от этого бота.

IP-адрес бота меняется очень часто, поэтому заблокировать его невозможно. Он создает учетные записи с очень реалистичным именем и адресом электронной почты, поэтому трудно определить, какие пользователи настоящие, а какие созданы ботом.

Я думал об использовании капчи, но я не уверен, что Apple отклонит мое приложение, если я это реализую. Я предпочтительно ищу способ, чтобы я мог помешать ему выполнять свою работу, и чтобы мне не пришлось повторно отправлять приложение в Apple.

Может ли кто-нибудь дать мне несколько советов о том, что я мог бы сделать?

Спасибо!


person Devos50    schedule 19.09.2012    source источник
comment
Вы можете использовать капчи, это не повод для отказа...   -  person    schedule 20.09.2012
comment
Спасибо за реакцию, постараюсь реализовать. Вы знаете какой-нибудь другой способ, которым я мог бы остановить его на стороне сервера? :)   -  person Devos50    schedule 20.09.2012
comment
ну, не совсем, если он создает реалистичные имена, даже спам-фильтр не сможет его остановить...   -  person    schedule 20.09.2012
comment
Вы уверены, что это бот? Какой шлюз вы используете на сервере?   -  person tamasgal    schedule 20.09.2012
comment
@septi Не уверен в этом, я почти уверен, что это автоматизированный инструмент, кстати, я использую apache2 в качестве веб-сервера;)   -  person Devos50    schedule 20.09.2012
comment
Хорошо и, возможно, Python/PHP или что-то в этом роде?   -  person tamasgal    schedule 20.09.2012
comment
Да, я использую PHP для серверной части.   -  person Devos50    schedule 20.09.2012


Ответы (1)


Вот как я решил аналогичную проблему:

Я реализовал генератор токенов, который генерирует одноразовый токен для каждой отдельной передачи данных с сервером, так что даже один для данных входа в систему, отправки файла и т. д. Этот токен генерируется по секретному алгоритму и может быть проверен на стороне сервера. , так как вы знаете, как его создать.

После использования одного токена поместите его во временный список на следующие X минут/часов/дней (в зависимости от того, сколько передач данных может обработать ваш сервер). Когда пользователь пытается отправить данные с использованным токеном (т. е. токен совпадает с одним из списка «запрещенных»), вы можете быть уверены, что кто-то пытается рассылать вам спам -> пометить учетную запись как «спамерскую» и решить, что вы хотите делать.

Алгоритм должен каждый раз создавать разные токены (лучшим способом было бы одностороннее хеширование), но вы должны обеспечить определенные «свойства», с помощью которых вы можете доказать его подлинность.

Итак, один очень простой пример:

Ваш алгоритм в клиенте генерирует число от 1000000000000000000000 до 99999999999999999999999, затем это число умножается на 12456564 и увеличивается на 20349.

Сервер становится конкретной командой и данными, а также сгенерированным токеном. Теперь он проверяет, равен ли (number - 20349)%12456564 0. Если он равен 0, он, вероятно, был сгенерирован вашим «секретным» алгоритмом.

Это очень простой пример, но вы поняли идею…

person tamasgal    schedule 19.09.2012
comment
Спасибо за ваш ответ! Это звучит действительно как очень хорошая идея для предотвращения спамеров. Я постараюсь реализовать это и напомню об этом для будущих приложений, еще раз спасибо! :) - person Devos50; 20.09.2012