Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Оцените логику зищиты от накрутки голосований (https://javascript.ru/forum/project/9548-ocenite-logiku-zishhity-ot-nakrutki-golosovanijj.html)

greatilya 24.05.2010 04:39

Оцените логику зищиты от накрутки голосований
 
Логика действий рейтинга
1. Регистрация пользователя
- генерация кода активации e-mail
- отправка кода активации на e-mail пользователя
- сохранение кода активации в таблице пользователя

2. Активация пользователя по e-mail
- проверка идентичности кода активации

3. Установка COOKIE
- генерация уникального кода для куков
- сохранение сгенерированного кода в таблице пользователя
- создаем куку с именем «user»+id_пользователя, и значением сгенерированного кода
- выдаем пользователю сообщение вида: «Вы сможете проголосовать через сутки»

4. Возвращение пользователя на следующий день
- проверка значения куков на идентичность
4.1. Куки не совпадают
- задаем новые куки, с новым сгенерированным числом
- выдаем сообщение, что «куки были повреждены и т.д. … чтобы проголосовать вернитесь на следующие сутки»
- возвращаемся к пункту 4
4.2. Куки совпадают
- появляется ссылка «Проголосовать»

5. Голосование
- считываем ip пользователя
- проверяем, голосовал ли кто-то сегодня с этого ip
5.1. С этого ip уже голосовали
- Вывод пользователю информации о невозможности голосования, т.к. с данного ip адреса уже голосовали
5.2. С этого ip не голосовали
- обновляем код в куках и записываем его в таблицу пользователя
- прибавляем 1 голос в голосовании
- Выдаем сообщение об успешном голосовании и что проголосовать еще раз будет возможно на следующий день
- возвращаемся к пункту 4

B@rmaley.e><e 24.05.2010 07:57

Капча при регистрации есть? Если нет, то толку от всего остального мало — это лишь усложнит жизнь накрутчикам. (Как и сама каптча, впрочем)

greatilya 24.05.2010 08:40

Значит рекомендуете поставить капчу? Ну если это важно то конечно поставим. Можете посоветовать капчу? (просто знаю много разных, хотелось бы узнать мнение профи)

B@rmaley.e><e 24.05.2010 09:46

Боту-скрипту потенциально не проблема зарегистрироваться, сбегать на мыло, подтвердить регистрацию, подцепить куки, проголосовать, сменить IP и зарегистрировать новый аккаунт (Собрать, допустим, базу из 1000 аккаунтов и каждый день с каждого из них голосовать).

Каптч, к сожалению, порекомендовать не могу. Сам собирался использовать kcaptcha (с небольшими доработками), но необходимость отпала.

Стойкость каптчи зависит от метода взлома. Мне известны 3:
— Математические. С помощью различный алгоритмов и обученных нейросетей производится автоматическое рапознавание. Нейросети обычно обучаются большим количеством исходных данных (читай — вариантами цифр). В таком случае Kcaptcha кажется мне достаточно надежной. Особенно если прикрутить туда побольше разных шрифтов.

— Брут-форс. При небольшом количестве вариантов вероятность успешного брута возрастает. Например, если у нас на каптче 3 цифры, то это всего 999 вариантов, т.е. из 1000 запросов как минимум один должен пройти (с теорвером не знаком, не пинать). Это касается не столько привычных каптч ввода текст, сколько всяческих альтернатив вроде "передвинь квадрат на круг" и т.д.

— Китайцы. Дешевая раб. сила, набирающая за пару центов текст с картинки. Против таких приемов нет. Хотя можно, например, использовать национальный алфавит. Вряд ли у этих "обезьянок" есть под рукой клава с русским алфавитом. (Ну или использовать это :) )

P.S. А зачем Вы проверяете, голосовали ли с IP, если у Вас пользователь зарегистрирован? Проверяйте еще и id юзера.

Gozar 24.05.2010 09:56

никакой регистрации, никаких капчей, проверка по ip и всё. Сообщение выдавать "спасибо что проголосовали". Хотите совсем жёстко - привяжите к ip+email. А то со всеми вашими суперпроверками вообще голосовать не будут. Имея же базу с ip можно отсеить ненужный спам(на случай голосования через прокси).

greatilya 24.05.2010 12:10

Цитата:

Сообщение от B@rmaley.e><e
А зачем Вы проверяете, голосовали ли с IP, если у Вас пользователь зарегистрирован?

Чтобы избежать(уменьшить) накрутку из другого браузера.
Цитата:

Сообщение от B@rmaley.e><e
Проверяйте еще и id юзера

Ну да, с 1 аккаунта только 1 голосование в сутки, это не уточнил.
B@rmaley.e><e,
А что вы думаете об этой капче?

Цитата:

Сообщение от Gozar
никакой регистрации, никаких капчей, проверка по ip и всё. Сообщение выдавать "спасибо что проголосовали". Хотите совсем жёстко - привяжите к ip+email. А то со всеми вашими суперпроверками вообще голосовать не будут. Имея же базу с ip можно отсеить ненужный спам(на случай голосования через прокси).

При обычных условиях не стали бы. Но в данном голосовании много заинтересованых. Также сами голосующие тоже заинтересованы в голосовании, т.к. за это им будут начисляться бонусы.
Поэтому нужно максимально осложнить жизнь накрутчикам, и при этом не забыть про пользователей и дать им удобную систему голосования.

Gozar 24.05.2010 13:38

Цитата:

Сообщение от greatilya (Сообщение 56301)
Чтобы избежать(уменьшить) накрутку из другого браузера.

Ну да, с 1 аккаунта только 1 голосование в сутки, это не уточнил.
B@rmaley.e><e,
А что вы думаете об этой капче?


При обычных условиях не стали бы. Но в данном голосовании много заинтересованых. Также сами голосующие тоже заинтересованы в голосовании, т.к. за это им будут начисляться бонусы.
Поэтому нужно максимально осложнить жизнь накрутчикам, и при этом не забыть про пользователей и дать им удобную систему голосования.

ip+email (ip + активированный аккаунт по email) решают вашу задачу, как я уже и сказал + фильтр по ip(на случай прокси) во время обработки стат.данных. Всё, абсолютно всё, остальное решается либо программно либо командой кликунов. Любая защита придуманная вами будет обходиться простыми методами профессионального программиста купленного на час, два. И не забывайте что вы сами можете дыр наделать своей защитой :)

greatilya 24.05.2010 14:02

Gozar,
А как вы предлагаете привязываться к ip? Не давать пользователям заходить с ip, отличного от того, с которого зарегистрировались? Или как? ... не совсем Вас понял...

Gozar 24.05.2010 14:28

greatilya,
1. жестко по ip: 1 ip 1 голос в день
2. мягко по ip: 1 ip несколько email(аккаунтов) в день

+ фильтрация на китайские прокси(по необходимости)

greatilya 24.05.2010 15:06

Цитата:

Сообщение от Gozar
китайские прокси

Это как я понимаю прокси-сервера из Китая... А отлавливать прокси других стран не нужно? Почему именно китайские? :)


Часовой пояс GMT +3, время: 21:54.