Använd CAPTCHA i Adaptive Forms

CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) är ett program som ofta används vid onlinetransaktioner för att skilja mellan människor och automatiserade program eller organ. Det utgör en utmaning och utvärderar användarens svar för att avgöra om det är en människa eller en robot som interagerar med webbplatsen. Det förhindrar användaren att fortsätta om testet misslyckas och gör onlinetransaktionerna säkra genom att förhindra att skräppost eller skadliga syften publiceras.

AEM Forms har stöd för CAPTCHA i Adaptive Forms. Du kan använda tjänsten reCAPTCHA från Google för att implementera CAPTCHA.

OBSERVERA
  • AEM Forms har endast stöd för reCaptcha v2. Andra versioner stöds inte.
  • CAPTCHA i Adaptive Forms stöds inte i offlineläge i AEM Forms app.

Konfigurera ReCAPTCHA-tjänsten av Google

Formulärförfattare kan använda tjänsten reCAPTCHA från Google för att implementera CAPTCHA i Adaptiv Forms. Den har avancerade CAPTCHA-funktioner för att skydda er webbplats. Mer information om hur reCAPTCHA fungerar finns i Google reCAPTCHA.

Recaptcha

Så här implementerar du tjänsten reCAPTCHA i AEM Forms:

  1. Hämta API-nyckelpar för reCAPTCHA från Google. Den innehåller en webbplatsnyckel och hemlighet.

  2. Skapa konfigurationsbehållare för molntjänster.

    1. Gå till Tools > General > Configuration Browser.

    2. Gör följande för att aktivera den globala mappen för molnkonfigurationer eller hoppa över det här steget för att skapa och konfigurera en annan mapp för molntjänstkonfigurationer.

      1. I konfigurationsläsaren väljer du global mapp och tryck Properties.

      2. Aktivera i dialogrutan Konfigurationsegenskaper Cloud Configurations.

      3. Tryck Save & Close för att spara konfigurationen och stänga dialogrutan.

    3. Tryck på Create.

    4. I dialogrutan Skapa konfiguration anger du en rubrik för mappen och aktiverar Cloud Configurations.

    5. Tryck Create för att skapa en mapp som är aktiverad för molntjänstkonfigurationer.

  3. Konfigurera molntjänsten för reCAPTCHA.

    1. Gå till Experience Manager verktyg-1 > Cloud Services.
    2. Tryck på reCAPTCHA. Sidan Konfigurationer öppnas. Välj den konfigurationsbehållare som skapades i föregående steg och tryck på Create.
    3. Ange namn, platsnyckel och hemlig nyckel för reCAPTCHA-tjänsten och tryck på Create för att skapa molntjänstkonfigurationen.
    4. I dialogrutan Redigera komponent anger du platsen och de hemliga nycklarna som fås i steg 1. Tryck Save Settings och sedan trycka OK för att slutföra konfigurationen.

    När reCAPTCHA-tjänsten har konfigurerats kan den användas i Adaptive Forms. Mer information finns i Använda CAPTCHA i Adaptive Forms.

Använd CAPTCHA i Adaptive Forms

Så här använder du CAPTCHA i Adaptiv Forms:

  1. Öppna ett anpassat formulär i redigeringsläge.

    OBSERVERA

    Kontrollera att den konfigurationsbehållare som valts när det adaptiva formuläret skapas innehåller molntjänsten reCAPTCHA. Du kan också redigera egenskaper för adaptiva formulär för att ändra konfigurationsbehållaren som är kopplad till formuläret.

  2. Dra från komponentwebbläsaren och släpp Captcha på adaptiva formulär.

    OBSERVERA

    Det går inte att använda mer än en Captcha-komponent i ett adaptivt formulär. Du bör inte heller använda CAPTCHA i en panel som är markerad för lazy loading eller i ett fragment.

    OBSERVERA

    Captcha är tidskänsligt och upphör om ungefär en minut. Därför rekommenderar vi att du placerar Captcha-komponenten precis före Skicka-knappen i den adaptiva formen.

  3. Välj den Captcha-komponent som du har lagt till och tryck på cmppr om du vill redigera dess egenskaper.

  4. Ange en titel för CAPTCHA-widgeten. Standardvärdet är Captcha. Välj Hide title om du inte vill att rubriken ska visas.

  5. Från Captcha service nedrullningsbar meny, välja reCaptcha för att aktivera tjänsten reCAPTCHA om du har konfigurerat den enligt beskrivningen i Tjänsten ReCAPTCHA från Google. Välj en konfiguration i listrutan Inställningar.

  6. Välj typen som Normal eller Compact för widgeten reCAPTCHA. Du kan också välja Invisible möjlighet att visa CAPTCHA-utmaningen endast i händelse av en misstänkt aktivitet. Varumärket protected by reCAPTCHA, som visas nedan, visas på de skyddade formulären.

    Google skyddat av reCAPTCHA-märke

    OBSERVERA

    Markera inte Default från listrutan Captcha-tjänst eftersom Experience Manager CAPTCHA-standardtjänsten är inaktuell.

  7. Spara egenskaperna.

Tjänsten reCAPTCHA är aktiverad i det adaptiva formuläret. Du kan förhandsgranska formuläret och se hur CAPTCHA fungerar.

Visa eller dölj CAPTCHA-komponent baserat på regler

Du kan välja att visa eller dölja CAPTCHA-komponenten baserat på regler som du tillämpar på en komponent i ett adaptivt formulär. Tryck på komponenten, markera redigera regleroch trycka Create för att skapa en regel. Mer information om hur du skapar regler finns i Regelredigeraren.

CAPTCHA-komponenten måste till exempel bara visas i ett adaptivt formulär om fältet Valutavärde i formuläret har ett värde över 25000.

Tryck på Currency Value i formuläret och skapa följande regler:

Visa eller dölja regler

Validera CAPTCHA

Du kan validera CAPTCHA i ett adaptivt formulär antingen när du skickar formuläret eller baserar CAPTCHA-valideringen på användaråtgärder och villkor.

Validera CAPTCHA när formulär skickas

Så här validerar du en CAPTCHA automatiskt när du skickar in ett adaptivt formulär:

  1. Tryck på CAPTCHA-komponenten och välj cmppr för att visa komponentegenskaperna.
  2. I Validate CAPTCHA avsnitt, markera Validate CAPTCHA at form submission.
  3. Tryck Klar för att spara komponentegenskaperna.

Validera CAPTCHA på användaråtgärder och villkor

Så här validerar du en CAPTCHA baserat på villkor och användaråtgärder:

  1. Tryck på CAPTCHA-komponenten och välj cmppr för att visa komponentegenskaperna.
  2. I Validate CAPTCHA avsnitt, markera Validate CAPTCHA on a user action.
  3. Tryck Klar för att spara komponentegenskaperna.

Experience Manager Forms innehåller ValidateCAPTCHA API för att validera CAPTCHA med fördefinierade villkor. Du kan anropa API:t med en anpassad skickaåtgärd eller genom att definiera regler för komponenter i ett anpassat formulär.

Följande är ett exempel på en ValidateCAPTCHA API för att validera CAPTCHA med fördefinierade villkor:

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;
        }
    }

Exemplet anger att ValidateCAPTCHA API validerar bara CAPTCHA i formuläret om antalet siffror i den numeriska rutan som användaren anger när formuläret fylls i är större än 5.

Alternativ 1: Använd Experience Manager Forms ValidateCAPTCHA API to validate CAPTCHA using a custom Submit Action

Utför följande steg för att använda ValidateCAPTCHA API för att validera CAPTCHA med en anpassad överföringsåtgärd:

  1. Lägg till skriptet som innehåller ValidateCAPTCHA API till anpassad skickaåtgärd. Mer information om anpassade överföringsåtgärder finns i Skapa en anpassad Skicka-åtgärd för Adaptiv Forms.
  2. Välj namnet på den anpassade Skicka-åtgärden på menyn Submit Action nedrullningsbar lista i Submission egenskaper för ett adaptivt formulär.
  3. Tryck på Submit. CAPTCHA valideras baserat på de villkor som definieras i ValidateCAPTCHA API för den anpassade åtgärden Skicka.

Alternativ 2: Använd Experience Manager Forms Validera CAPTCHA API för att validera CAPTCHA på en användaråtgärd innan formuläret skickas

Du kan också anropa ValidateCAPTCHA API genom att tillämpa regler på en komponent i ett adaptivt formulär.

Du kan till exempel lägga till en Validate CAPTCHA i ett adaptivt formulär och skapa en regel som anropar en tjänst genom att klicka på en knapp.

Följande bild visar hur du kan anropa en tjänst genom att klicka på en Validate CAPTCHA knapp:

Validera CAPTCHA

Du kan anropa den anpassade servern som innehåller ValidateCAPTCHA API med regelredigeraren och aktivera eller inaktivera skicka-knappen för det adaptiva formuläret baserat på valideringsresultatet.

På samma sätt kan du använda regelredigeraren för att inkludera en anpassad metod för att validera CAPTCHA i ett adaptivt formulär.

Lägg till anpassade CAPTCHA-tjänster

Experience Manager Forms tillhandahåller reCAPTCHA som CAPTCHA-tjänst. Du kan dock lägga till en anpassad tjänst som ska visas i CAPTCHA Service nedrullningsbar lista.

Nedan följer ett exempel på en implementering av gränssnittet för att lägga till ytterligare CAPTCHA-tjänst i ditt adaptiva formulär:

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 refererar till resurssökvägen för CAPTCHA-komponenten i Sling-databasen. Använd den här egenskapen om du vill ta med information som är specifik för CAPTCHA-komponenten. Till exempel: captchaPropertyNodePath innehåller information om reCAPTCHA-molnkonfigurationen som konfigurerats för CAPTCHA-komponenten. Molnkonfigurationsinformationen innehåller Site Key och Secret Key inställningar för implementering av tjänsten reCAPTCHA.

userResponseToken refererar till g_recaptcha_response som genereras när en CAPTCHA har lösts i ett formulär.

Redigera reCAPTCHA-tjänstdomän

reCAPTCHA-tjänsten använder https://www.recaptcha.net/ som standarddomän. Du kan ändra inställningarna för att ange https://www.google.com/ eller ett anpassat domännamn för inläsning, återgivning och validering av reCAPTCHA-tjänsten.

Ange af.cloudservices.recaptcha.domain egenskapen för Adaptive Form and Interactive Communication Web Channel Configuration konfiguration som ska anges https://www.google.com/ eller något annat anpassat domännamn. I följande JSON-fil visas ett exempel:

{
  "af.cloudservices.recaptcha.domain": "https://www.google.com/"
}

Så här anger du värden för en konfiguration: Generera OSGi-konfigurationer med AEM SDKoch distribuera konfigurationen till din Cloud Service.

På denna sida