Nesta fase, existem inúmeras atividades de votação realizadas no WeChat Moments. Acredito que muitos alunos já estejam incomodados com isso, porque pessoas (parentes, amigos, ou o que quer que seja) sempre aparecerão de vez em quando para pedir que você vote neles.
Este artigo não pretende explorar esta questão a partir de um nível moral ou emocional. O que me interessa é que a maioria das actividades eleitorais actuais têm, na verdade, lacunas óbvias e a "manipulação de votos" pode ser conseguida através de meios técnicos simples.
Aqui está um exemplo.
Um salão de cabeleireiro online (doravante denominado S Mall) realizou um evento de votação online na plataforma WeChat. Os usuários do WeChat podem acessar a página de votação através do link do evento e votar nos trabalhos de seus cabeleireiros favoritos. Cada conta do WeChat só pode votar no Elenco; 1 voto para uma única obra.
A página de atividade de votação é mostrada abaixo:
Superficialmente, o S Mall já implementou medidas anti-trapaça nas atividades de votação porque cada usuário do WeChat está restrito a apenas um voto por dia. Se os usuários acessarem este serviço de votação normalmente através do WeChat para votar, isso terá de fato o efeito desejado.
Porém, se você visualizar o endereço original da página de votação, ou seja, segurar a página e arrastá-la para baixo, verá que “Esta página da web é fornecida por XXX” é exibido na parte superior da tela. esse "XXX" aqui não é "mp.weixin. qq.com", mas o nome de domínio do S Mall. Ou seja, o programa desta atividade de votação está rodando no servidor do S Mall.
Com base na análise acima, pode-se inferir que o diagrama de topologia de rede das operações de votação dos usuários deve ser o seguinte:
Quando um usuário do WeChat acessa a página de votação, o servidor WeChat apenas encaminha a solicitação, e a contagem e verificação específica dos votos são feitas no servidor S Mall.
Então, como o S Mall distingue os usuários votantes?
Isso envolve o conceito de plataforma pública WeChat OpenID
. A explicação oficial do OpenID
é: depois de criptografar o ID do WeChat, o OpenID de cada usuário para cada conta oficial é único.
É fácil verificar isso. Você só precisa usar várias contas WeChat para votar, capturar pacotes de rede durante o processo de votação e verificar os parâmetros no POST para confirmar.
Com base nisso, a plataforma pública WeChat incluirá o OpenID
do usuário no parâmetro POST ao encaminhar a solicitação de votação após o S Mall receber a solicitação POST de votação, podendo evitar uma única votação consultando se o OpenID
atual votou naquele dia; O usuário votou repetidamente.
No entanto, há uma grande lacuna aqui!
S Mall só pode determinar se OpenID
está duplicado, mas não pode verificar a validade OpenID
porque não pode chamar o servidor WeChat para verificar o OpenID
.
Depois de esclarecer essa lacuna, é muito simples conseguir a escovação dos ingressos.
OpenID
e faça solicitações POST repetidas.Se você deseja implementar a escovação em lote de tickets ou operações automatizadas de escovação de tickets, você pode implementar solicitações de escovação de tickets por meio de scripts Python, você pode até usar o LoadRunner.
Execute VoteRobot.py
, o log de saída é o seguinte:
======== Start to vote zpid(38), Total votes: 3
1 tickets has been voted, the next ticket will be voted after 35 seconds.
2 tickets has been voted, the next ticket will be voted after 31 seconds.
3 tickets has been voted, the next ticket will be voted after 10 seconds.
======== Voting Ended!
Deve-se observar que geralmente é melhor ter um intervalo de tempo aleatório ao automatizar a escovação de tickets, e é melhor simular dinamicamente diferentes dispositivos, ou seja, modificar User-Agent
. Caso contrário, o servidor poderá identificar facilmente o comportamento de trapaça.
Vendo isso, alguns alunos podem ficar secretamente felizes. Esse método pode ser usado para “roubar votos” em votações futuras?
Infelizmente, claro que não.
Na verdade, as lacunas no caso deste artigo são de nível muito baixo. No entanto, ainda há uma grande proporção de atividades de votação que utilizam este modelo.
Também é fácil dizer se uma campanha eleitoral pode ser enganada desta forma. Usando o método deste artigo, se a URL do evento não for oficial do WeChat e não houver verificação adicional em todo o processo de votação, a possibilidade de trapaça é muito alta e, em seguida, capture o pacote para ver o processo de interação de comunicação; e usar Depois de modificar os parâmetros da ferramenta de solicitação de rede e solicitar novamente, você pode verificar se a trapaça é realmente possível.
Além disso, algumas pessoas podem querer perguntar: é impossível evitar a “manipulação de votos” nas atividades de votação online?
A resposta é que é realmente difícil eliminá-lo completamente. Você já ouviu falar do cambista 12306? Você já ouviu falar da Apple Store classificando aplicativos profissionalmente? Você já ouviu falar dos “trolls da Internet” e da “Festa dos 50 Cent”?
No entanto, os organizadores do evento podem usar alguns meios para aumentar significativamente o limite de trapaça. Por exemplo, muitas atividades atuais utilizam os seguintes métodos:
Não importa qual desses dois métodos seja usado, o método de “escovação de votos” neste artigo é completamente ineficaz.