Bearbeitung einer CAPTCHA Antwort von AWS WAF - AWS WAF, AWS Firewall Manager, und AWS Shield Advanced

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bearbeitung einer CAPTCHA Antwort von AWS WAF

Dieser Abschnitt enthält ein Beispiel für den Umgang mit einer CAPTCHA Antwort.

Importieren in &S3; AWS WAF Regel mit einem CAPTCHA Aktion beendet die Auswertung einer passenden Webanfrage, wenn die Anfrage kein Token mit einem gültigen CAPTCHA Zeitstempel hat. Handelt es sich bei der Anfrage um einen GET Text-/HTML-Aufruf CAPTCHA Die Aktion bietet dem Kunden dann ein Interstitial mit einem Rätsel. CAPTCHA Wenn Sie das nicht integrieren CAPTCHA JavaScript API, führt das Interstitial das Rätsel aus und wenn der Endbenutzer es erfolgreich löst, sendet es die Anfrage automatisch erneut.

Wenn Sie das integrieren CAPTCHA JavaScript API und Ihre CAPTCHA Handhabung anpassen, müssen Sie die abschließende CAPTCHA Antwort erkennen, Ihre benutzerdefinierte Antwort bereitstellen und dann, wenn der Endbenutzer das Rätsel erfolgreich löstCAPTCHA, die Webanfrage des Kunden erneut einreichen.

Das folgende Codebeispiel veranschaulicht, wie dazu vorgegangen wird.

Anmerkung

Das Tool AWS WAF CAPTCHA Die Aktionsantwort hat den Statuscode HTTP 405, anhand dessen wir Folgendes erkennen CAPTCHA Antwort in diesem Code. Wenn Ihr geschützter Endpunkt einen HTTP 405-Statuscode verwendet, um eine andere Art von Antwort für denselben Anruf zu übermitteln, gibt dieser Beispielcode auch für diese Antworten ein CAPTCHA Rätsel auf.

<!DOCTYPE html> <html> <head> <script type="text/javascript" src="<Integration URL>/jsapi.js" defer></script> </head> <body> <div id="my-captcha-box"></div> <div id="my-output-box"></div> <script type="text/javascript"> async function loadData() { // Attempt to fetch a resource that's configured to trigger a CAPTCHA // action if the rule matches. The CAPTCHA response has status=HTTP 405. const result = await AwsWafIntegration.fetch("/protected-resource"); // If the action was CAPTCHA, render the CAPTCHA and return // NOTE: If the endpoint you're calling in the fetch call responds with HTTP 405 // as an expected response status code, then this check won't be able to tell the // difference between that and the CAPTCHA rule action response. if (result.status === 405) { const container = document.querySelector("#my-captcha-box"); AwsWafCaptcha.renderCaptcha(container, { apiKey: "...API key goes here...", onSuccess() { // Try loading again, now that there is a valid CAPTCHA token loadData(); }, }); return; } const container = document.querySelector("#my-output-box"); const response = await result.text(); container.innerHTML = response; } window.addEventListener("load", () => { loadData(); }); </script> </body> </html>