Um sistema de votação simples: como evitar votos duplicados [duplicado]

Esta questão já tem uma resposta aqui:

IPs exclusivos em um sistema de votação 7 respostas

Estou criando um aplicativo da web simples com uma opção de voto para cima. Eu planejo oferecer recompensas em dinheiro para os mais votados, então eu quero um sistema relativamente seguro. Eu tenho algumas perguntas sobre a concepção. Eu sei que o meu post é semelhante a alguns outros, mas nenhum parece ser específico o suficiente para a plataforma para colocar minha mente à vontade.

Meu aplicativo da web está utilizando o javascript e o firebase para carregar todos os objetos que estão sendo votados. Eu vou forçar um usuário a estar logado e armazenar endereços IP, IDs de usuário, etc.

Questões:

Isso é fundamentalmente falho desde o início para o uso de javascript? Eu vejo um grande potencial para escrever um script que apenas altera valores e vota novamente. (talvez eu possa verificar se os dados do front end estão corretos e se o usuário existe com uma chamada ajax?)Com a chance de que meu aplicativo se torne bem-sucedido, isso será muito complicado?

Editar: Me desculpe, mas deixei de fora o fato chave de que eu tenho um sistema back end maior (WordPress) que lida com a autenticação. O aplicativo em que estou trabalhando é amplamente independente do wordpress. Eu estou simplesmente puxando algumas informações do usuário para fins de filtragem. Escolhi o Firebase como uma solução de armazenamento para seus recursos em tempo real.

Espero combater a fraude eleitoral com alguns métodos:

recompensas baixas $ 100 / mês doado.Estar logado não é um compromisso, eu realmente quero que os usuários sejam registrados e verificados com olhos humanos para poder votar. Outros podem testemunhar o concurso, mas não podem votar.verificações do lado do servidor. Se meu aplicativo ganhar popularidade, posso escrever scripts para monitorar padrões de votação de irregularidades? Se alguém está abusando do sistema, eu desabilito a capacidade deles de ganhar.

questionAnswers(4)

yourAnswerToTheQuestion