CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) é um programa comumente usado em transações on-line para distinguir entre humanos e programas ou bots automatizados. Ele representa um desafio e avalia a resposta do usuário para determinar se é um humano ou um bot interagindo com o site. Ele impede que o usuário continue se o teste falhar e ajuda a tornar as transações online seguras, impedindo que os bots publiquem spam ou fins mal-intencionados.
AEM Forms O suporta CAPTCHA no Adaptive Forms. Você pode usar o serviço reCAPTCHA pelo Google para implementar o CAPTCHA.
Os autores de formulários podem usar o serviço reCAPTCHA pelo Google para implementar o CAPTCHA no Adaptive Forms. Ele oferece recursos avançados de CAPTCHA para proteger o 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 do reCAPTCHA do Google. Inclui uma chave e um segredo do site.
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 de serviço de nuvem.
No Navegador de configuração, selecione a variável global pasta e toque em 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 do 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 configurações do cloud service.
Configure o serviço de nuvem para o reCAPTCHA.
Depois que o serviço reCAPTCHA é configurado, ele é disponibilizado para uso no Adaptive Forms. Para obter mais informações, consulte Utilização de CAPTCHA no Adaptive Forms.
Para usar CAPTCHA no Adaptive Forms:
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 do Formulário adaptável 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 há suporte para o uso de mais de um componente Captcha em um Formulário adaptável. Além disso, não é recomendável usar CAPTCHA em um painel marcado para carregamento lento ou em um fragmento.
O Captcha é sensível ao tempo e expira em cerca de um minuto. Portanto, é recomendável colocar o componente Captcha antes do botão Enviar no Formulário adaptável.
Selecione o componente Captcha adicionado e toque em 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 seja exibido.
No Serviço de 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 na lista suspensa Configurações.
Selecione o tipo como Normal ou Compacto para o widget reCAPTCHA. Você também pode selecionar a variável Invisível opção para mostrar o desafio de CAPTCHA somente no caso de uma atividade suspeita. O símbolo protegido pelo reCAPTCHA, exibido abaixo, é exibido nos formulários protegidos.
Não selecionar Padrão no menu suspenso do serviço Captcha, como o serviço Experience Manager CAPTCHA padrão está obsoleto.
Salve as propriedades.
O serviço reCAPTCHA é ativado no Formulário adaptável. Você pode visualizar o formulário e ver o CAPTCHA funcionando.
É possível optar por mostrar ou ocultar o componente CAPTCHA com base nas regras aplicadas em um componente de um Formulário adaptável. Toque no componente e 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 maior que 25000.
Toque no Valor da moeda no formulário e crie as seguintes regras:
É possível 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 nas condições e ações do usuário:
Experience Manager Forms fornece ValidateCAPTCHA
API para validar CAPTCHA usando condições predefinidas. Você pode chamar a API usando uma Ação enviar personalizada ou definindo regras em componentes em um Formulário adaptável.
Veja a seguir um exemplo de 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: uso Experience Manager Forms Validar a API CAPTCHA para validar CAPTCHA usando uma ação enviar personalizada
Execute as seguintes etapas para usar o ValidateCAPTCHA
API para validar CAPTCHA usando uma Ação enviar personalizada:
ValidateCAPTCHA
API para ação enviar personalizada. Para obter mais informações sobre ações enviar personalizadas, consulte Criar uma ação enviar personalizada para o Forms adaptável.ValidateCAPTCHA
API da Ação de envio personalizada.Opção 2: uso Experience Manager Forms Validar API CAPTCHA para validar CAPTCHA em uma ação do usuário antes de enviar o formulário
Você também pode invocar ValidateCAPTCHA
ao aplicar regras em um componente em um Formulário adaptável.
Por exemplo, você adiciona um Validar CAPTCHA em um Formulário adaptável e crie uma regra para chamar um serviço com o clique de um botão.
A figura a seguir ilustra como você pode chamar um serviço com um clique de Validar CAPTCHA botão:
Você pode chamar o servlet personalizado que inclui ValidateCAPTCHA
API usando o editor de regras e ativar ou desativar o botão enviar do Formulário adaptável com base no resultado da validação.
Da mesma forma, você pode 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 o reCAPTCHA como o serviço CAPTCHA. No entanto, é possível adicionar um serviço personalizado para exibir na Serviço CAPTCHA lista suspensa.
Este é um exemplo de implementação da interface para adicionar outro serviço CAPTCHA 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
inclui informações para a configuração de nuvem do 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 à g_recaptcha_response
que é gerado após resolver um CAPTCHA em um formulário.
O serviço reCAPTCHA usa https://www.recaptcha.net/
como o domínio padrão. Você pode modificar as configurações para definir https://www.google.com/
ou qualquer nome de domínio personalizado para carregar, processar e validar o serviço reCAPTCHA.
Defina o af.cloudservices.recaptcha.domain propriedade do Configuração do canal da Web do formulário adaptável e da comunicação interativa configuração a ser especificada https://www.google.com/
ou qualquer outro nome de domínio personalizado. O seguinte arquivo JSON exibe uma amostra:
{
"af.cloudservices.recaptcha.domain": "https://www.google.com/"
}
Para definir valores de uma configuração, Gerar configurações de OSGi usando o SDK do AEM, e implantar a configuração para a instância do Cloud Service.