O CAPTCHA (Completamente Automated Public Turing test to tell Computers and Humans Além) é um programa comumente usado em transações online para distinguir entre humanos e programas ou bots automatizados. Ele coloca um desafio e avalia a resposta do usuário para determinar se é um humano ou um bot interagindo com o site. Impede que o usuário continue se o teste falhar e ajuda a tornar as transações online seguras, impedindo que bots postem spam ou fins mal-intencionados.
O AEM Forms suporta CAPTCHA em formulários adaptáveis. Você pode usar o serviço reCAPTCHA da Google para implementar CAPTCHA.
Os autores de formulários podem usar o serviço reCAPTCHA da Google para implementar CAPTCHA em formulários adaptáveis. Ele oferece recursos CAPTCHA avançados para proteger seu site. Para obter mais informações sobre como o reCAPTCHA funciona, consulte Google reCAPTCHA.
Para implementar o serviço reCAPTCHA no AEM Forms:
Obter par de chaves da API reCAPTCHA do Google. Inclui uma chave do site e um segredo.
Criar contêiner de configuração para serviços em nuvem.
Ir para Ferramentas > Geral > Navegador de configuração.
Faça o seguinte para habilitar a pasta global para configurações de nuvem ou ignore esta etapa para criar e configurar outra pasta para configurações do serviço de nuvem.
No Navegador de configuração, selecione o global pasta e toque Propriedades.
Na caixa de diálogo Propriedades de configuração, ative Configurações da nuvem.
Toque Salvar e fechar para salvar a configuração e sair da caixa de diálogo.
No Navegador de configuração, toque em Criar.
Na caixa de diálogo Criar configuração, especifique um título para a pasta e habilite Configurações da nuvem.
Toque Criar para criar a pasta habilitada para as configurações do serviço de nuvem.
Configure o serviço de nuvem para reCAPTCHA.
Quando o serviço reCAPTCHA é configurado, ele está disponível para uso em formulários adaptáveis. Para obter mais informações, consulte Uso de CAPTCHA em formulários adaptáveis.
Para usar CAPTCHA em formulários adaptáveis:
Abra um formulário adaptável no modo de edição.
Verifique se o contêiner de configuração selecionado ao criar o formulário adaptável contém o serviço de nuvem reCAPTCHA. Também é possível editar as propriedades adaptáveis do formulário para alterar o contêiner de configuração associado ao formulário.
No navegador de componentes, arraste e solte a Captcha no formulário adaptável.
Não é possível usar mais de um componente Captcha em um formulário adaptável. Além disso, não é recomendado usar CAPTCHA em um painel marcado para carregamento lento ou em um fragmento.
O Captcha diferencia tempo e expira em cerca de um minuto. Portanto, é recomendável colocar o componente Captcha logo antes do botão Enviar no formulário adaptável.
Selecione o componente Captcha adicionado e toque para editar suas propriedades.
Especifique um título para o widget CAPTCHA. O valor padrão é Captcha. Selecionar Ocultar título se não quiser que o título apareça.
No Serviço Captcha , selecione reCaptcha para ativar o serviço reCAPTCHA, se você o tiver configurado conforme descrito em Serviço ReCAPTCHA da Google. Selecione uma configuração no menu suspenso Configurações . Além disso, selecione o tamanho como Normal ou Compacto para o widget reCAPTCHA.
Não selecionar Padrão no menu suspenso do serviço Captcha como o serviço AEM CAPTCHA padrão está obsoleto.
Salve as propriedades.
O serviço reCAPTCHA está ativado no formulário adaptável. Você pode visualizar o formulário e ver o CAPTCHA funcionando.
Você pode optar por mostrar ou ocultar o componente CAPTCHA com base nas regras aplicadas em um componente em um formulário adaptável. Toque no componente, selecione e toque em Criar para criar uma regra. Para obter mais informações sobre como criar regras, consulte Editor de regras.
Por exemplo, o componente CAPTCHA deve ser exibido em um Formulário adaptável somente se o campo Valor da moeda no formulário tiver um valor superior a 25000.
Toque no Valor da Moeda no formulário e crie as seguintes regras:
Você pode validar CAPTCHA em um Formulário adaptável ao enviar o formulário ou basear a validação CAPTCHA em ações e condições do usuário.
Para validar um CAPTCHA automaticamente ao enviar um Formulário adaptável:
Para validar um CAPTCHA com base em condições e ações do usuário:
Experience Manager Forms forneça ValidateCAPTCHA
API para validar CAPTCHA usando condições predefinidas. Você pode chamar a API usando uma Ação de envio personalizada ou definindo regras em componentes em um formulário adaptável.
Este é um exemplo de um ValidateCAPTCHA
API para validar CAPTCHA usando condições predefinidas:
if (slingRequest.getParameter("numericbox1614079614831").length() >= 5) {
GuideCaptchaValidatorProvider apiProvider = sling.getService(GuideCaptchaValidatorProvider.class);
String formPath = slingRequest.getResource().getPath();
String captchaData = slingRequest.getParameter(GuideConstants.GUIDE_CAPTCHA_DATA);
if (!apiProvider.validateCAPTCHA(formPath, captchaData).isCaptchaValid()){
response.setStatus(400);
return;
}
}
O exemplo significa que a variável ValidateCAPTCHA
A API valida o CAPTCHA no formulário somente se o número de dígitos na caixa numérica especificada pelo usuário durante o preenchimento do formulário for maior que 5.
Opção 1: Use Experience Manager Forms Validar a API CAPTCHA para validar o CAPTCHA usando uma Ação de envio personalizada
Execute as etapas a seguir para usar o ValidateCAPTCHA
API para validar CAPTCHA usando uma Ação de envio personalizada:
ValidateCAPTCHA
API para enviar ação personalizada. Para obter mais informações sobre ações de envio personalizadas, consulte Criar uma ação de envio personalizada para o Adaptive Forms.ValidateCAPTCHA
API da Ação de envio personalizada.Opção 2: Use Experience Manager Forms Validar a API CAPTCHA para validar CAPTCHA em uma ação do usuário antes de enviar o formulário
Você também pode invocar ValidateCAPTCHA
API ao aplicar regras em um componente em um formulário adaptável.
Por exemplo, você adiciona uma Validar CAPTCHA em um Formulário adaptável e criar uma regra para chamar um serviço com o clique de um botão.
A figura a seguir ilustra como chamar um serviço com o clique de um Validar CAPTCHA botão:
Você pode chamar o servlet personalizado que inclui ValidateCAPTCHA
API usando o editor de regras e ative ou desative o botão Enviar do formulário adaptável com base no resultado da validação.
Da mesma forma, é possível usar o editor de regras para incluir um método personalizado para validar CAPTCHA em um formulário adaptável.
Experience Manager Forms O fornece reCAPTCHA como o serviço CAPTCHA. No entanto, é possível adicionar um serviço personalizado para exibir no Serviço CAPTCHA lista suspensa.
Veja a seguir uma amostra da implementação da interface para adicionar um serviço CAPTCHA adicional ao Formulário adaptável:
package com.adobe.aemds.guide.service;
import org.osgi.annotation.versioning.ConsumerType;
/**
* An interface to provide captcha validation at server side in Adaptive Form
* This interface can be used to provide custom implementation for different captcha services.
*/
@ConsumerType
public interface GuideCaptchaValidator {
/**
* This method should define the actual validation logic of the captcha
* @param captchaPropertyNodePath path to the node with CAPTCHA configurations inside form container
* @param userResponseToken The user response token provided by the CAPTCHA from client-side
*
* @return {@link GuideCaptchaValidationResult} validation result of the captcha
*/
GuideCaptchaValidationResult validateCaptcha(String captchaPropertyNodePath, String userResponseToken);
/**
* Returns the name of the captcha validator. This should be unique among the different implementations
* @return name of the captcha validator
*/
String getCaptchaValidatorName();
}
captchaPropertyNodePath
refere-se ao caminho do recurso do componente CAPTCHA no repositório Sling. Use essa propriedade para incluir detalhes específicos do componente CAPTCHA. Por exemplo, captchaPropertyNodePath
O inclui informações para a configuração da nuvem reCAPTCHA configurada no componente CAPTCHA. As informações de configuração da nuvem fornecem Chave do site e Chave secreta configurações para implementar o serviço reCAPTCHA.
userResponseToken
refere-se ao g_recaptcha_response
que é gerado depois de resolver um CAPTCHA em um formulário.