Crie seu próprio Captcha usando CSharp
Olá pessoal, hoje eu quero mostrar como criar seu próprio captcha usando a linguagem C# e a ferramenta Visual Studio da Microsoft. O mais importante é que não utilizaremos nenhum software externo ao seu, isso porque muitos já são capturados por ferramentas.
O problema:
- O grande problema hoje em dia é que boots ou softwares automáticos entram em sites e mandam e-mail de anuncios ou até vírus.
- Outro grande problema é que todos os dias você vai receber e-mails e uma você ou seu cliente vai clicar e ser infectado.
Eu fiz um teste em meu site, sem o capta eu recebia todos os dias pessoas até querendo comprar o site ou o conteúdo, mas eu precisa fazer algumas coisas, entrar no site ou dar até dinheiro. Depois de criar o meu próprio capta e colocar, esses e-mails pararam e nenhum mais foi recebido.
Isso porque eu coloquei uma lógica interna e indetectável pelos boots. Vamos ver como foi desenvolvido.
Desenvolvimento
Página aspx
Na página de contato foi colocado apenas um label chamado lblSoma a mais.
<asp:Label ID="lblSoma" runat="server" ForeColor="Red"></asp:Label>
<asp:TextBox runat="server" ID="txtSoma" TextMode="Number" MaxLength="4"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtSoma"Display="Dynamic" ErrorMessage="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
<br /><br />
<asp:Button ID="cmdEnviar" CssClass="btn-lg" Text="Enviar" runat="server" OnClick="cmdEnviar_Click" />
<asp:Label ID="lblResultado" runat="server" ForeColor="Red"></asp:Label>
Código 1.1 - Label da página
Não vou colocar aqui toda a página de contato, só mesmo o código que precisei colocar e assim basta você colocar na sua página que já está pronta.
C# Code
Para gerar o captcha automático é necessário gerar um método que executa na entrada da página e para isso eu dei o nome de RandomSoma(). A.
private void RandomSoma()
{
Random random = new Random();
var _primeiroValor = random.Next(0, 10);
var _segundoValor = random.Next(5, 15);
lblSoma.Text = _primeiroValor + "+" + _segundoValor;
}
Código 1.2 - RandomSoma() que gera o captcha
O código é bem simples pois ele pega os números aleatórios de 0 a 10 para o primeiro valor e de 5 a 15 para o segundo valor. No final, basta pegar o primeiro e soma com o segundo para colocar no label da tela chamado lblSoma.Text.
Como é aleatório, fica bem tranquilo.
Pegar o valor
Agora vamos pegar o valor quando o usuário digitar. Como a label está separada pela string "+" basta fazer um split do label, separar o primeiro e segundo valor, somar e verificar se é igual ao que o usuário digital na página.
var _soma = lblSoma.Text.Split('+');
var _primeiroValor = _soma[0];
var _segundoValor = _soma[1];
var _somaTotal = int.Parse(_primeiroValor) + int.Parse(_segundoValor);
if (!txtSoma.Text.Equals(_somaTotal.ToString()))
{
lblResultado.Text = "Wrong, try again";
return;
}
.... // continua seu código
Código 1.3 - Verifica a soma antes de fazer ação
Depois disso, parei 100% de receber e-mails spams e problemáticos. Você pode usar o exemplo para fazer várias coisas como outras operações matemáticas, usar em MVC, .NET Core e tudo mais.
Espero que tenha gostado e qualquer coisa, fique com o vídeo abaixo mostrando como fazer. Qualquer dúvida pode entrar em meu site https://www.mauriciojunior.org.
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.