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.
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.
Så här implementerar du tjänsten reCAPTCHA i AEM Forms:
Hämta API-nyckelpar för reCAPTCHA från Google. Den innehåller en webbplatsnyckel och hemlighet.
Skapa konfigurationsbehållare för molntjänster.
Gå till Tools > General > Configuration Browser.
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.
I konfigurationsläsaren väljer du global mapp och tryck Properties.
Aktivera i dialogrutan Konfigurationsegenskaper Cloud Configurations.
Tryck Save & Close för att spara konfigurationen och stänga dialogrutan.
Tryck på Create.
I dialogrutan Skapa konfiguration anger du en rubrik för mappen och aktiverar Cloud Configurations.
Tryck Create för att skapa en mapp som är aktiverad för molntjänstkonfigurationer.
Konfigurera molntjänsten för reCAPTCHA.
När reCAPTCHA-tjänsten har konfigurerats kan den användas i Adaptive Forms. Mer information finns i Använda CAPTCHA i Adaptive Forms.
Så här använder du CAPTCHA i Adaptiv Forms:
Öppna ett anpassat formulär i redigeringsläge.
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.
Dra från komponentwebbläsaren och släpp Captcha på adaptiva formulär.
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.
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.
Välj den Captcha-komponent som du har lagt till och tryck på om du vill redigera dess egenskaper.
Ange en titel för CAPTCHA-widgeten. Standardvärdet är Captcha. Välj Hide title om du inte vill att rubriken ska visas.
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.
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.
Markera inte Default från listrutan Captcha-tjänst eftersom Experience Manager CAPTCHA-standardtjänsten är inaktuell.
Spara egenskaperna.
Tjänsten reCAPTCHA är aktiverad i det adaptiva formuläret. Du kan förhandsgranska formuläret och se hur CAPTCHA fungerar.
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 och 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:
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.
Så här validerar du en CAPTCHA automatiskt när du skickar in ett adaptivt formulär:
Så här validerar du en CAPTCHA baserat på villkor och användaråtgärder:
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:
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.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:
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.
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.
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.