Use CAPTCHA no Adaptive Forms

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.

AEM Forms O suporta CAPTCHA no Adaptive Forms. Você pode usar o serviço reCAPTCHA da Google para implementar CAPTCHA.

OBSERVAÇÃO
  • AEM Forms suporta apenas o reCaptcha v2. Nenhuma outra versão é compatível.
  • O CAPTCHA no Adaptive Forms não é compatível com o modo offline no AEM Forms aplicativo.

Configurar o serviço ReCAPTCHA pela Google

Os autores de formulários podem usar o serviço reCAPTCHA da Google para implementar CAPTCHA no Adaptive Forms. Ele oferece recursos CAPTCHA avançados para proteger seu site. Para obter mais informações sobre como o reCAPTCHA funciona, consulte Google reCAPTCHA.

Recaptcha

Para implementar o serviço reCAPTCHA em AEM Forms:

  1. Obter par de chaves da API reCAPTCHA do Google. Inclui uma chave do site e um segredo.

  2. Criar contêiner de configuração para serviços em nuvem.

    1. Ir para Ferramentas > Geral > Navegador de configuração.

    2. 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.

      1. No Navegador de configuração, selecione o global pasta e toque Propriedades.

      2. Na caixa de diálogo Propriedades de configuração, ative Configurações da nuvem.

      3. Toque Salvar e fechar para salvar a configuração e sair da caixa de diálogo.

    3. No Navegador de configuração, toque em Criar.

    4. Na caixa de diálogo Criar configuração, especifique um título para a pasta e habilite Configurações da nuvem.

    5. Toque Criar para criar a pasta habilitada para as configurações do serviço de nuvem.

  3. Configure o serviço de nuvem para reCAPTCHA.

    1. Na instância do autor do Experience Manager, acesse tools-1 > Cloud Services.
    2. Toque reCAPTCHA. A página Configurações é aberta. Selecione o contêiner de configuração criado na etapa anterior e toque em Criar.
    3. Especifique o nome, a chave do site e a chave secreta para o serviço reCAPTCHA e toque em Criar para criar a configuração do serviço de nuvem.
    4. Na caixa de diálogo Editar componente , especifique o site e as chaves secretas obtidas na etapa 1. Toque Salvar configurações em seguida, toque em OK para concluir a configuração.

    Quando o serviço reCAPTCHA é configurado, ele está disponível para uso no Adaptive Forms. Para obter mais informações, consulte Uso de CAPTCHA no Adaptive Forms.

Use CAPTCHA no Adaptive Forms

Para usar CAPTCHA no Adaptive Forms:

  1. Abra um formulário adaptável no modo de edição.

    OBSERVAÇÃO

    Verifique se o contêiner de configuração selecionado ao criar o Formulário adaptativo 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.

  2. No navegador de componentes, arraste e solte a Captcha no formulário adaptável.

    OBSERVAÇÃO

    Não há suporte para o uso de 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.

    OBSERVAÇÃO

    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.

  3. Selecione o componente Captcha adicionado e toque cmppr para editar suas propriedades.

  4. 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.

  5. 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 .

  6. Selecione o tipo como Normal ou Compacto para o widget reCAPTCHA. Também é possível selecionar a variável Invisível opção para mostrar o desafio CAPTCHA apenas no caso de uma atividade suspeita. O selo protegido por reCAPTCHA, exibido abaixo, é exibido nos formulários protegidos.

    Google processado pelo selo reCAPTCHA

    OBSERVAÇÃO

    Não selecionar Padrão no menu suspenso Captcha service como o serviço Experience Manager CAPTCHA padrão está obsoleto.

  7. 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.

Mostrar ou ocultar componente CAPTCHA com base em regras

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 editar regrase 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:

Mostrar ou ocultar regras

Validar CAPTCHA

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.

Validar CAPTCHA no envio do formulário

Para validar um CAPTCHA automaticamente ao enviar um Formulário adaptável:

  1. Toque no componente CAPTCHA e selecione cmppr para exibir as propriedades do componente.
  2. No Validar CAPTCHA seção , selecione Validar CAPTCHA no envio do formulário.
  3. Toque Concluído para salvar as propriedades do componente.

Validar CAPTCHA em ações e condições do usuário

Para validar um CAPTCHA com base em condições e ações do usuário:

  1. Toque no componente CAPTCHA e selecione cmppr para exibir as propriedades do componente.
  2. No Validar CAPTCHA seção , selecione Validar CAPTCHA em uma ação do usuário.
  3. Toque Concluído para salvar as propriedades do componente.

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:

  1. Adicione o script que inclui a variável 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.
  2. Selecione o nome da Ação de envio personalizada no Enviar ação lista suspensa em Submissão propriedades de um formulário adaptável.
  3. Toque Enviar. O CAPTCHA é validado com base nas condições definidas em 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:

Validar CAPTCHA

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.

Adicionar serviços CAPTCHA personalizados

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.

Editar domínio do serviço reCAPTCHA

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, renderizar e validar o serviço reCAPTCHA.

Defina as af.cloudservices.recaptcha.domain da Configuração do canal Web de comunicação interativa e formulário adaptável configuração para especificar 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 AEMe implantar a configuração para a instância do Cloud Service.

Nesta página