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

Разработих приложение, което позволява на потребителите да качват някои снимки и да ги споделят във Facebook/Dropbox/Twitter и т.н. Наскоро то беше пуснато на живо в магазина за приложения.

Сега обаче имам проблем: бот създава акаунти и качва много снимки на моя сървър. Временно деактивирах приложението, но сега търся ефективен начин да попреча на този бот да направи това.

IP адресът на бота се променя много често, така че е невъзможно да се блокира ip. Той създава акаунти с много реалистично име и имейл адрес, така че е трудно да се разбере кои потребители са истински и кои са създадени от бота.

Мислех да използвам captcha, но не съм сигурен дали приложението ми ще бъде отхвърлено от Apple, ако внедря това. За предпочитане е да търся начин, за да мога да му попреча да си върши работата и за да не се налага отново да изпращам приложението на Apple.

Може ли някой да ми даде съвет какво бих могъл да направя?

Благодаря!


person Devos50    schedule 19.09.2012    source източник
comment
Можете да използвате captcha, това всъщност не е причина за отказ...   -  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