| Data de elaboração | 15/07/2024 |
|---|---|
| Responsável pelo estudo | João Cícero Romão Gomes de Oliveira |
| Equipe do estudo | Liderança Técnica |
| Alvo | Sistemas da Setic (VisaOn, Solar, Central do Desenvolvedor, Geração Emprego, Gov.Doc, Portal de Processos Seletivos, Regulariza Já, Susie, Portal do Cidadão). |
| Origem | Implementação: Estudo que verifica a viabilidade para a implantação do Captcha, conforme a User Story: “Verificar viabilidade técnica para implantação Captcha”. |
| Objetivo | Verificar a viabilidade técnica da implantação do reCAPTCHA em sistemas web da setic. |
1. Introdução
O reCAPTCHA é uma ferramenta desenvolvida pelo Google que serve para diferenciar usuários humanos de bots automatizados. A sua implementação em telas de cadastro, login e preenchimento de formulários em sistemas web é crucial para garantir a segurança e a integridade dos dados do sistema.
Importância do reCAPTCHA
Para adicionar o reCAPTCHA em um sistema web que usa ASP.NET Core, siga os passos abaixo:
public void ConfigureServices(IServiceCollection services)
{ services.AddControllersWithViews();
services.AddRecaptcha(options =>
{
options.SecretKey = "your-secret-key";
options.SiteKey = "your-site-key";
});
}
3. Adicionar o reCAPTCHA ao Formulário:
No Arquivo de visualização (Razor Page ou View), adicione o reCaptcha ao formulário:
<form asp-action="YourAction" method="post">
<div class="align-content-center ">
<div class="g-recaptcha" data-sitekey="Sua_chave_De_Site"></div>
</div>
<button type="submit">Submit</button>
</form>
<script src='https://www.google.com/recaptcha/api.js'></script>
4. Validar o reCAPTCHA no Servidor:
Na Controller do formulário, adicione a validação do reCAPTCHA:
using reCAPTCHA.AspNetCore;
using Microsoft.AspNetCore.Mvc;
public class YourController : Controller
{
private readonly IRecaptchaService _recaptcha;
public YourController(IRecaptchaService recaptcha)
{
_recaptcha = recaptcha;
}
[HttpPost]
public async Task<IActionResult> YourAction(YourModel model)
{
var recaptcha = await _recaptcha.Validate(Request);
if (!recaptcha.success)
{
ModelState.AddModelError(string.Empty, "reCAPTCHA falhou. Tente novamente.");
return View(model);
}
return RedirectToAction("Success");
}
}
A implementação do reCAPTCHA em telas de cadastro, login e formulários em sistemas web é essencial para proteger contra bots, reduzir spam e garantir a segurança dos dados. A adição do reCAPTCHA em projetos ASP.NET Core é relativamente simples, envolvendo a obtenção das chaves do reCAPTCHA, a configuração dos serviços e a validação tanto no cliente quanto no servidor.