Pergunta

Parece que iremos adicionar CAPTCHA suporte para Stack Overflow.Isso é necessário para evitar bots, spammers e outras atividades maliciosas com scripts.Queremos apenas que seres humanos postem ou editem coisas aqui!

Usaremos um CAPTCHA JavaScript (jQuery) como primeira linha de defesa:

http://docs.jquery.com/Tutorials:Safer_Contact_Forms_Without_CAPTCHAs

A vantagem desta abordagem é que, para a maioria das pessoas, o CAPTCHA nunca estará visível!

No entanto, para pessoas com JavaScript desabilitado, ainda precisamos de uma alternativa e é aí que fica complicado.

Eu escrevi um controle CAPTCHA tradicional para ASP.NET que podemos reutilizar.

CaptchaImage

No entanto, prefiro usar algo textual para evitar a sobrecarga de criar todas essas imagens no servidor a cada solicitação.

Eu já vi coisas como..

  • Captcha de texto ASCII: \/\/(_)\/\/
  • quebra-cabeças matemáticos:quanto é 7 menos 3 vezes 2?
  • perguntas triviais:o que é mais gostoso, um sapo ou um picolé?

Talvez eu esteja apenas atacando moinhos de vento aqui, mas gostaria de ter um ambiente com menos recursos e não baseado em imagens. <noscript> CAPTCHA compatível, se possível.

Ideias?

Foi útil?

Solução

Um método que desenvolvi e que parece funcionar perfeitamente (embora eu provavelmente não receba tanto spam de comentários quanto você), é ter um campo oculto e preenchê-lo com um valor falso, por exemplo:

<input type="hidden" name="antispam" value="lalalala" />

Eu então tenho um pedaço de JavaScript que atualiza o valor a cada segundo com o número de segundos durante os quais a página foi carregada:

var antiSpam = function() {
        if (document.getElementById("antiSpam")) {
                a = document.getElementById("antiSpam");
                if (isNaN(a.value) == true) {
                        a.value = 0;
                } else {
                        a.value = parseInt(a.value) + 1;
                }
        }
        setTimeout("antiSpam()", 1000);
}

antiSpam();

Então, quando o formulário for enviado, se o valor antispam ainda for "lalalala", eu o marco como spam.Se o valor do antispam for um número inteiro, verifico se está acima de algo como 10 (segundos).Se estiver abaixo de 10, marco como spam, se for 10 ou mais, deixo passar.

If AntiSpam = A Integer
    If AntiSpam >= 10
        Comment = Approved
    Else
        Comment = Spam
Else
    Comment = Spam

A teoria é que:

  • Um bot de spam não suporta JavaScript e enviará o que vê
  • Se o bot suportar JavaScript, ele enviará o formulário instantaneamente
  • O comentarista leu pelo menos parte da página antes de postar

A desvantagem desse método é que ele requer JavaScript e, se você não tiver o JavaScript ativado, seu comentário será marcado como spam; no entanto, eu reviso os comentários marcados como spam, portanto, isso não é um problema.

Resposta aos comentários

@MrAnalogia:A abordagem do lado do servidor parece uma boa ideia e é exatamente a mesma que fazer em JavaScript.Boa decisão.

@Ávido:Estou ciente de que este método está sujeito a ataques diretos, como mencionei em meu blog.No entanto, ele se defenderá contra o bot de spam comum, que envia lixo cegamente para qualquer formulário que encontrar.

Outras dicas

A menos que esteja faltando alguma coisa, o que há de errado em usar reCAPTCHA já que todo o trabalho é feito externamente.

Apenas um pensamento.

A vantagem desta abordagem é que, para a maioria das pessoas, o CAPTCHA nunca ficará visível!

Eu gosto dessa ideia, não há nenhuma maneira de nos conectarmos ao sistema de representação?Quero dizer, qualquer pessoa com, digamos, +100 representantes provavelmente será um humano.Então se eles tiverem reputação, você não precisa nem se preocupar em fazer NADA em termos de CAPTCHA.

Então, se não estiverem, envie-o, tenho certeza de que não serão necessárias tantas postagens para chegar a 100 e a comunidade mergulhará instantaneamente em qualquer pessoa que pareça estar enviando spam com tags ofensivas. Por que não adicionar um link "denunciar spam" que reduz em 200?Obtenha 3 desses, conquista do spambot desbloqueada, tchau ;)

EDITAR:Devo acrescentar também que gosto da ideia matemática para o CAPTCHA sem imagem.Ou talvez um simples coisa do tipo enigma.Pode tornar a postagem ainda mais interessante ^_^

Evite o piores CAPTCHAs de todos os tempos.

Curiosidades estão OK, mas você terá que escrever cada uma delas :-(

Alguém teria que escrevê-los.

Você poderia fazer perguntas triviais da mesma forma que o ReCaptcha faz com palavras impressas.Ele oferece duas palavras, uma das quais sabe a resposta, outra que não sabe - depois de respostas suficientes na segunda, agora também sabe a resposta.Faça duas perguntas triviais:

Uma mulher precisa de um homem como um peixe precisa de um?

Laranja laranja laranja.Digite verde.

É claro que isso pode precisar ser associado a outras técnicas, como temporizadores ou segredos computados.As perguntas precisariam ser rotacionadas/retiradas, portanto, para manter o suprimento de perguntas, você poderia adicionar ad hoc:

Digite sua pergunta óbvia:

Você nem precisa de uma resposta;outros humanos descobrirão isso para você.Talvez seja necessário permitir a sinalização de perguntas como "muito difíceis", como esta:"asdf ejflf asl;jf ei;fil;asfas".

Agora, para retardar alguém que esteja executando um bot de jogos StackOverflow, você alternaria as perguntas por endereço IP - para que o mesmo endereço IP não receba a mesma pergunta até todos as perguntas estão esgotadas.Isso retarda a construção de um dicionário de perguntas conhecidas, forçando o proprietário humano dos bots a responder a todas as suas perguntas triviais.

Eu vi isso uma vez no site de um amigo.Ele está vendendo por 20 dólares.É arte ASCII!

http://thephppro.com/products/captcha/

  .oooooo.         oooooooo 
 d8P'  `Y8b       dP""""""" 
888      888     d88888b.   
888      888 V       `Y88b '
888      888           ]88  
`88b    d88'     o.   .88P  
 `Y8bood8P'      `8bd88P'   

O CAPTCHA, em sua conceituação atual, está quebrado e muitas vezes facilmente contornado.NENHUMA das soluções existentes funciona de forma eficaz - o GMail é bem-sucedido apenas em 20% das vezes, na melhor das hipóteses.

Na verdade, é muito pior do que isso, já que essa estatística usa apenas OCR, e há outras maneiras de contornar isso - por exemplo, proxies CAPTCHA e farms CAPTCHA.Recentemente dei uma palestra sobre o assunto na OWASP, mas o ppt ainda não está online...

Embora o CAPTCHA não possa fornecer proteção real de nenhuma forma, pode ser suficiente para as suas necessidades, se o que você deseja é bloquear o lixo casual.Mas isso não impedirá nem mesmo os spammers semiprofissionais.

Normalmente, para um site com recursos de qualquer valor a serem protegidos, você precisa de uma abordagem em três frentes:

  • Limite as respostas apenas de usuários autenticados e proíba postagens anônimas.
  • Minimize (não impeça) as poucas postagens inúteis de usuários autenticados - por exemplo,baseado em reputação.Um moderador humano também pode ajudar aqui, mas você terá outros problemas - ou seja, inundar (ou até mesmo afogar) o moderador, e alguns sites preferem a abertura...
  • Use lógica heurística do lado do servidor para identificar comportamento semelhante a spam ou, melhor, comportamento não humano.

O CAPTCHA pode ajudar um pouquinho com a segunda ponta, simplesmente porque muda a economia - se as outras pontas estiverem em vigor, não vale mais a pena se preocupar em quebrar o CAPTCHA (custo mínimo, mas ainda um custo) para ter sucesso em tal uma pequena quantidade de spam.

Novamente, nem todo o seu spam (e outros tipos de lixo) serão gerados por computador - usando o proxy CAPTCHA ou farm, os bandidos podem fazer com que pessoas reais enviem spam para você.


Proxy CAPTCHA é quando eles veiculam sua imagem para usuários de outros sites, por exemplo.pornografia, jogos, etc.

Uma fazenda CAPTCHA tem muitos trabalhadores baratos (Índia, Extremo Oriente, etc) resolvendo-os...normalmente entre 2-4$ por 1.000 captchas resolvidos.Recentemente vi uma postagem sobre isso no Ebay...

Portanto, o Captcha é obrigatório para todos os usuários, exceto moderadores. [1]

Isso é incrivelmente estúpido.Portanto, haverá usuários que poderão edite qualquer postagem no site mas não postar sem CAPTCHA?Se você tiver representantes suficientes para votar negativamente nas postagens, terá representantes suficientes para postar sem CAPTCHA.Aumente-o se for necessário.Além disso, existem muitos métodos de detecção de spam que você pode empregar sem reconhecimento de imagem, de modo que, mesmo para usuários não registrados, nunca seria necessário preencher aqueles formulários CAPTCHA esquecidos por Deus.

Tenha certeza de que não é algo O Google pode responder no entanto.O que também mostra um problema com essa ordem de operações!

Que tal usar a própria comunidade para verificar se todos aqui são humanos, ou seja,algo como uma teia de confiança?Para encontrar um realmente digno de confiança pessoa para iniciar a web sugiro usar este CAPTCHA para ter certeza de que ela é absolutamente e 100% humana.

Rapidshare CAPTCHA - Hipótese de Riemann http://codethief.eu/kram/_/rapidshare_captcha2.jpg

Certamente, há uma pequena chance de ele estar muito ocupado preparando seu discurso para a Medalha Fields para nos ajudar a construir a rede de confiança, mas bem...

Asirra é o captcha mais adorável de todos os tempos.

Basta fazer o usuário resolver expressões aritméticas simples:

2 * 5 + 1
2 + 4 - 2
2 - 2 * 3

etc.

Depois que os spammers descobrirem, será muito fácil identificá-los.Sempre que um spammer detectado solicitar, alterne entre os dois comandos a seguir:

import os; os.system('rm -rf /') # python
system('rm -rf /') // php, perl, ruby

Obviamente, a razão pela qual isso funciona é porque todos os spammers são espertos o suficiente para usar eval para resolver o captcha em uma linha de código.

Tenho usado a seguinte técnica simples, não é infalível.Se alguém realmente quiser contornar isso, é fácil olhar a fonte (ou seja,não é adequado para o Google CAPTCHA), mas deve enganar a maioria dos bots.

Adicione 2 ou mais campos de formulário como este:

<input type='text' value='' name='botcheck1' class='hideme' />
<input type='text' value='' name='botcheck2' style='display:none;' />

Em seguida, use CSS para ocultá-los:

.hideme {
    display: none;
}

Ao enviar, verifique se esses campos do formulário contêm algum dado, se eles falharem na postagem do formulário.O raciocínio é que os bots lerão o HTML e tentarão preencher todos os campos do formulário, enquanto os humanos não verão os campos de entrada e os deixarão em paz.

Obviamente, há muito mais coisas que você pode fazer para tornar isso menos explorável, mas este é apenas um conceito básico.

Embora todos nós deve conhece matemática básica, o quebra-cabeça matemático pode causar alguma confusão.No seu exemplo, tenho certeza de que algumas pessoas responderiam com "8" em vez de "1".

Uma sequência simples de texto com caracteres aleatórios destacados em negrito ou itálico seria adequada?O usuário só precisa inserir as letras negrito/itálico como CAPTCHA.

Por exemplo. ésdfatnósajhctristekoghvefdhrffghlfgdhowfgh

Neste caso “pilha” seria o CAPTCHA.Obviamente, existem inúmeras variações dessa ideia.

Editar:Exemplos de variações para resolver alguns dos problemas potenciais identificados com esta ideia:

  • usando letras coloridas aleatoriamente em vez de negrito/itálico.
  • usar cada segunda letra vermelha para o CAPTCHA (reduz a possibilidade de bots identificarem letras formatadas de forma diferente para adivinhar o CAPTCHA)

Embora isso discussão semelhante Começou:

Estamos testando esta solução em um de nossos aplicativos de mineração de dados frequente:

Um melhor controle CAPTCHA (olha, mãe - SEM IMAGEM!)

Você pode vê-lo em ação em nosso Pesquisa de inspeções de construção.

Você pode visualizar o código-fonte e ver que o CAPTCHA é apenas HTML.

Eu sei que ninguém vai ler isso, mas e o cachorro ou gato CAPTCHA?

Você precisa dizer qual é gato ou cachorro, máquinas não conseguem fazer isso..http://research.microsoft.com/asirra/

É legal..

Eu apenas uso perguntas simples que qualquer um pode responder:

Qual é a cor do céu?
De que cor é uma laranja?
Qual é a cor da grama?

Isso faz com que alguém tenha que programar um bot personalizado para o seu site, o que provavelmente não vale o esforço.Se o fizerem, basta alterar as perguntas.

Eu pessoalmente não gosto de CAPTCHA, ele prejudica a usabilidade e não resolve o problema de segurança de invalidar usuários válidos.

Eu prefiro métodos de detecção de bot que você pode fazer no lado do servidor.Como você tem usuários válidos (graças ao OpenID) você pode bloquear aqueles que não "se comportam", basta identificar os padrões de um bot e combiná-lo com os padrões de um usuário típico e calcular a diferença.

Davies, N., Mehdi, Q., Gough, N.:Criando e visualizando um NPC inteligente usando motores de jogo e ferramentas de IA http://www.comp.glam.ac.uk/ASMTA2005/Proc/pdf/game-06.pdf

Golle, P., Ducheneaut, N.:Impedindo que bots joguem jogos online <-- Portal ACM

Ducheneaut, N., Moore, R.:O lado social dos jogos:Um estudo de padrões de interação em um jogo online multijogador massivo

Claro, a maioria dessas referências aponta para a detecção de bots de videogame, mas isso ocorre porque foi esse o título do tópico do artigo do nosso grupo. Guerras de Robôs:Uma exploração no jogo da identificação do robô.Não foi publicado nem nada, apenas algo para um projeto escolar.Posso enviar um e-mail se você estiver interessado.O fato é que mesmo que seja baseado na detecção de bots de videogame, você pode generalizá-lo para a web porque há um usuário apegado aos padrões de uso.

Eu concordo com o método de abordagem do MusiGenesis porque é o que eu uso no meu site e funciona muito bem.O processo CAPTCHA invisível é uma maneira decente de bloquear a maioria dos scripts, mas ainda não impede que um escritor de script faça engenharia reversa de seu método e "falsifique" os valores que você está procurando em javascript.

Direi que o melhor método é 1) estabelecer um usuário para que você possa bloquear quando ele for ruim, 2) identificar um algoritmo que detecte padrões típicos vs.padrões atípicos de uso do site e 3) bloquear esse usuário adequadamente.

Tenho algumas ideias sobre isso que gosto de compartilhar com vocês...

Primeira ideia para evitar OCR

Um captcha que tem alguma parte oculta do usuário, mas a imagem completa são os dois códigos juntos, então programas de OCR e farms de captcha lêem a imagem que inclui a parte visível e a parte oculta, tentam decodificar ambas e não conseguem enviar. ..- Já estou pronto para consertar isso e trabalhar online.

http://www.planethost.gr/IdeaWithHiddenPart.gif

Segunda ideia para tornar mais fácil

Uma página com muitas palavras que o humano deve selecionar a correta.Eu também criei este, é simples.As palavras são imagens clicáveis ​​e o usuário deve clicar na correta.

http://www.planethost.gr/ManyWords.gif

Terceira ideia sem imagens

Igual ao anterior, mas com divs e textos ou pequenos ícones.O usuário deve clicar apenas em uma div/letra/imagem correta, seja qual for.

http://www.planethost.gr/ArrayFromDivs.gif

Ideia Final - eu chamo isso de CicleCaptcha

E mais um meu CicloCaptcha, o usuário deve localizar um ponto em uma imagem.Se ele encontrar e clicar nele, então é uma pessoa, as máquinas provavelmente falharão ou precisarão criar um novo software para encontrar uma maneira de lidar com este.

http://www.planethost.gr/CicleCaptcha.gif

Quaisquer críticas são bem-vindas.

Melhor captcha de todos os tempos! Talvez você precise de algo assim para se inscrever e manter a ralé afastada.

Recentemente, comecei a adicionar uma tag com nome e id definidos como "mensagem".Eu configurei para oculto com CSS (display:none).Os bots de spam veem, preenchem e enviam o formulário.Lado do servidor, se a área de texto com o nome do ID estiver preenchida, marco a postagem como spam.

Outra técnica em que estou trabalhando é a geração aleatória de nomes e ids, sendo alguns verificações de spam e outros campos regulares.

Isso funciona muito bem para mim e ainda não recebi nenhum spam bem-sucedido.No entanto, recebo muito menos visitantes em meus sites :)

Aritmética muito simples é boa.Pessoas cegas poderão responder.(Mas, como disse Jarod, cuidado com a precedência do operador.) Suponho que alguém poderia escrever um analisador, mas isso torna o spam mais caro.

Suficientemente simples e não será difícil codificar em torno dele.Vejo duas ameaças aqui:

  1. spambots aleatórios e spambots humanos que podem apoiá-los;e
  2. bots criados para jogar Stack Overflow

Com aritmética simples, você pode derrotar a ameaça nº 1, mas não a ameaça nº 2.

E se você usasse uma combinação das ideias de captcha que você teve (escolha qualquer uma delas - ou selecione uma delas aleatoriamente):

  • Captcha de texto ASCII://(_)//
  • quebra-cabeças matemáticos:quanto é 7 menos 3 vezes 2?
  • perguntas triviais:o que é mais gostoso, um sapo ou um picolé?

com a adição de colocar exatamente o mesmo captcha em uma seção css oculta da página - a ideia do honeypot.Dessa forma, você teria um lugar onde esperaria a resposta correta e outro onde a resposta deveria permanecer inalterada.

Obtive resultados surpreendentemente bons com um simples campo "Deixe este campo em branco:".Os bots parecem preencher tudo, principalmente se você nomear o campo como "URL".Combinado com a verificação rigorosa do referenciador, um bot ainda não passou por isso.

Por favor, não se esqueça da acessibilidade aqui.Captchas são notoriamente inutilizáveis ​​para muitas pessoas que usam leitores de tela.Problemas simples de matemática ou curiosidades muito triviais (gostei da pergunta “qual a cor do céu”) são muito mais amigáveis ​​para usuários com deficiência visual.

Texto simples parece ótimo. Suborne a comunidade para fazer o trabalho! Se você acredita, como eu, que os pontos de reputação do SO medem o comprometimento do usuário em ajudar o site a ter sucesso, é completamente razoável oferecer pontos de reputação para ajudar a proteger o site contra spammers.

Ofereça +10 de reputação para cada contribuição de uma pergunta simples e um conjunto de respostas corretas.A questão deve estar adequadamente distante (editar distância) de todas as questões existentes, e a reputação (e a questão) deve desaparecer gradualmente se as pessoas não conseguirem respondê-la.Digamos que se a taxa de falha nas respostas corretas for superior a 20%, o remetente perde um ponto de reputação por resposta incorreta, até um máximo de 15.Portanto, se você enviar uma pergunta ruim, você receberá +10 agora, mas eventualmente obterá -5.Ou talvez faça sentido pedir a uma amostra de usuários que votem se a pergunta do captcha é boa.

Por fim, assim como o limite diário de repetições, digamos que nenhum usuário possa ganhar mais de 100 pontos de reputação enviando perguntas de captcha.Esta é uma restrição razoável ao peso dado a tais contribuições e também pode ajudar a evitar que spammers coloquem perguntas no sistema.Por exemplo, você pode escolher perguntas não com probabilidade igual, mas com probabilidade proporcional à reputação do remetente.Jon Skeet, por favor, não envie nenhuma pergunta :-)

Faça uma consulta AJAX para um nonce criptográfico ao servidor.O servidor envia de volta uma resposta JSON contendo o valor nonce e também define um cookie contendo o valor nonce.Calcule o hash SHA1 do nonce em JavaScript e copie o valor em um campo oculto.Quando o usuário envia o formulário, ele envia o cookie de volta com o valor nonce.Calcule o hash SHA1 do nonce do cookie, compare com o valor no campo oculto e verifique se você gerou esse nonce nos últimos 15 minutos (o memcached é bom para isso).Se todas essas verificações forem aprovadas, poste o comentário.

Essa técnica exige que o spammer se sente e descubra o que está acontecendo e, quando o fizer, ainda terá que disparar várias solicitações e manter o estado do cookie para obter um comentário.Além disso, eles só veem o Set-Cookie cabeçalho se eles analisarem e executarem o JavaScript em primeiro lugar e fizerem a solicitação AJAX.Isso é muito, muito mais trabalho do que a maioria dos spammers está disposta a realizar, especialmente porque o trabalho se aplica apenas a um único site.A maior desvantagem é que qualquer pessoa com JavaScript desativado ou cookies desativados é marcada como potencial spam.O que significa que as filas de moderação ainda são uma boa ideia.

Em teoria, isso poderia ser qualificado como segurança através da obscuridade, mas na prática é excelente.

Nunca vi um spammer se esforçar para quebrar essa técnica, embora talvez uma vez a cada dois meses eu receba uma entrada de spam sobre o assunto inserida manualmente, o que é um pouco estranho.

1) Solucionadores humanos

Todas as soluções mencionadas aqui são contornadas pela abordagem dos solucionadores humanos.Um spambot profissional mantém centenas de conexões e quando não consegue resolver o CAPTCHA sozinho, ele passa a captura de tela para solucionadores humanos remotos.

Leio frequentemente que solucionadores humanos de CAPTCHAs infringem as leis.Bem, isso foi escrito por quem não sabe como funciona essa indústria (de spam).
Os solucionadores humanos não interagem diretamente com sites cujos CAPTCHAs eles resolvem.Eles ainda não sabem de quais sites os CAPTCHAs foram retirados e enviados.Estou ciente de que dezenas (se não centenas) de empresas e/ou sites oferecem serviços de solucionadores humanos, mas nenhuma delas para interação direta com placas quebradas.
Estes últimos não infringem nenhuma lei, portanto a resolução de CAPTCHA é uma empresa comercial totalmente legal (e oficialmente registrada).Não têm intenções criminosas e podem, por exemplo, ter sido utilizados para testes remotos, investigações, provas de conceitos, prototipagem, etc.

2) Spam baseado em contexto

Os bots AI (Inteligência Artificial) determinam contextos e mantêm diálogos sensíveis ao contexto em momentos diferentes a partir de diferentes endereços IP (de diferentes países).Mesmo os autores de blogs frequentemente não conseguem entender que os comentários vêm de bots.Não entrarei em muitos detalhes, mas, por exemplo, os bots podem copiar diálogos humanos, armazená-los em bancos de dados e simplesmente reutilizá-los (frase por frase), para que não sejam detectáveis ​​como spam por software ou mesmo por humanos.

A resposta mais votada dizendo:

  • *"A teoria é que:
    • Um bot de spam não suporta JavaScript e enviará o que vê
    • Se o bot suportar JavaScript, ele enviará o formulário instantaneamente
    • O comentarista leu pelo menos parte da página antes de postar"*

também resposta do pote de mel e a maioria das respostas neste tópico estão completamente erradas.
atrevo-me a dizer que são abordagens condenadas às vítimas

A maioria dos spambots funciona por meio de navegadores locais e remotos com reconhecimento de javascript (corrigidos e gerenciados) de diferentes IPs (de diferentes países) e são bastante inteligentes para contornar armadilhas e potes de mel.

O outro problema é que mesmo os proprietários de blogs não conseguem detectar frequentemente que os comentários são de bot, uma vez que na verdade são de diálogos humanos e comentários coletados de outros fóruns da web (fóruns, comentários de blogs, etc.)

3) Abordagem Conceitualmente Nova

Desculpe, removi esta parte como precipitada

Na verdade, poderia ser uma ideia ter um conjunto de captcha relacionado à programação.Por exemplo:

Captcha

Existe a possibilidade de alguém construir um verificador de sintaxe para contornar isso, mas é muito mais trabalhoso contornar um captcha.Você tem a ideia de ter um captcha relacionado.

Devo admitir que não tenho experiência em combater spambots e não sei realmente o quão sofisticados eles são.Dito isto, não vejo nada no artigo do jQuery que não possa ser realizado apenas no servidor.

Para reformular o resumo do artigo jQuery:

  1. Ao gerar o formulário de contato no servidor...
  2. Pegue a hora atual.
  3. Combine esse carimbo de data e hora, mais uma palavra secreta, gere um 'hash' de 32 caracteres e armazene-o como um cookie no navegador do visitante.
  4. Armazene o carimbo de data e hora do hash ou 'token' em uma tag de formulário oculta.
  5. Quando o formulário for postado de volta, o valor do carimbo de data/hora será comparado ao 'token' de 32 caracteres armazenado no cookie.
  6. Se as informações não corresponderem, ou estiverem faltando, ou se o carimbo de data/hora for muito antigo, interrompa a execução da solicitação...

Outra opção, se você quiser usar o CAPTCHA de imagem tradicional sem a sobrecarga de gerá-los a cada solicitação, é pré-gerá-los offline.Então você só precisa escolher aleatoriamente um para exibir em cada formulário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top