Боту-скрипту потенциально не проблема зарегистрироваться, сбегать на мыло, подтвердить регистрацию, подцепить куки, проголосовать, сменить IP и зарегистрировать новый аккаунт (Собрать, допустим, базу из 1000 аккаунтов и каждый день с каждого из них голосовать).
Каптч, к сожалению, порекомендовать не могу. Сам собирался использовать
kcaptcha (с небольшими
доработками), но необходимость отпала.
Стойкость каптчи зависит от метода взлома. Мне известны 3:
— Математические. С помощью различный алгоритмов и обученных нейросетей производится автоматическое рапознавание. Нейросети обычно обучаются большим количеством исходных данных (читай — вариантами цифр). В таком случае Kcaptcha кажется мне достаточно надежной. Особенно если прикрутить туда побольше разных шрифтов.
— Брут-форс. При небольшом количестве вариантов вероятность успешного брута возрастает. Например, если у нас на каптче 3 цифры, то это всего 999 вариантов, т.е. из 1000 запросов как минимум один должен пройти (с теорвером не знаком, не пинать). Это касается не столько привычных каптч ввода текст, сколько всяческих альтернатив вроде "передвинь квадрат на круг" и т.д.
— Китайцы. Дешевая раб. сила, набирающая за пару центов текст с картинки. Против таких приемов нет. Хотя можно, например, использовать национальный алфавит. Вряд ли у этих "обезьянок" есть под рукой клава с русским алфавитом. (Ну или использовать
это )
P.S. А зачем Вы проверяете, голосовали ли с IP, если у Вас пользователь зарегистрирован? Проверяйте еще и id юзера.