Другой подход, просто чтобы предоставить альтернативу:
Предполагая, что большинство людей знают, как себя вести, или просто не умеют себя плохо вести, просто задним числом убирают голоса. Это также сделало бы голосование ненавязчивым для избирателей.
Итак, установите куки, регистрируйте каждый голос, а затем (или через определенный промежуток времени) просматривайте результаты и удаляйте дубликаты на основе значений куки, комбинаций IP / UserAgent и т. Д.
Я бы предположил, что не активная блокировка нескольких голосов от одного человека сводит к минимуму использование высокотехнологичных методов обхода, а результаты легко чистить.
С другой стороны, вы не можете, вероятно, отображать фактические подсчеты голосов в реальном времени на пользовательском интерфейсе, иначе брови будут подняты, когда просто пропадет куча голосов.