Freigeben über


JavaScript-Herausforderung der Azure-Webanwendungsfirewall

Die Azure Web Application Firewall (WAF) im Azure Application Gateway bietet ein JavaScript (JS)-Herausforderungsfeature als eine der Entschärfungsoptionen für den erweiterten Bot-Schutz.

Die Azure Web Application Firewall (WAF) in Azure Front Door bietet ein JavaScript (JS)-Herausforderungsfeature als eine der Entschärfungsoptionen für den erweiterten Bot-Schutz. Sie ist in der Premium-Version als Aktion im benutzerdefinierten Regelsatz und im Bot Manager 1.x-Regelet verfügbar.

Die JavaScript-Herausforderung ist eine unsichtbare Web-Herausforderung, die zwischen legitimen Benutzern und Bots unterscheidet. Böswillige Bots schlagen die Herausforderung fehl und schützen Ihre Webanwendungen. Darüber hinaus reduziert die JavaScript-Herausforderung Reibung für legitime Benutzer, da es keine menschliche Intervention erfordert.

Von Bedeutung

Die JavaScript-Herausforderung der Azure-Webanwendungsfirewall im Azure-Anwendungsgateway befindet sich derzeit in der VORSCHAU. Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Funktionsweise

Wenn die JavaScript-Herausforderung in Azure WAF aktiv ist und die HTTP(S)-Anforderung eines Clients mit einer bestimmten Regel übereinstimmt, wird dem Client eine Microsoft JavaScript-Abfrageseite angezeigt. Der Benutzer sieht diese Seite einige Sekunden, während der Browser die Herausforderung berechnet. Wenn der Browser des Benutzers die Herausforderung erfolgreich berechnet, sendet er eine Antwort an einen Azure-Endpunkt, der verfügbar gemacht wird, wenn WAF konfiguriert ist. Dieser Endpunkt wird der Öffentlichkeit zugänglich gemacht, jedoch werden Anforderungen, die an diesen Endpunkt gesendet werden, nicht an das Back-End weitergeleitet und zählen nicht zu den Funktionen zur Begrenzung der Rate. Der Benutzer besteht die Prüfung, wenn der Aufruf des Browsers an diesen Endpunkt die richtigen Werte enthält, die auf eine erfolgreiche Berechnung hindeuten.

Der Browser des Clients muss eine JavaScript-Überprüfung auf dieser Seite erfolgreich verarbeiten, um die Validierung von Azure WAF zu erhalten. Wenn die Berechnung erfolgreich ist, validiert WAF die Anforderung als die eines Clients, bei dem es sich nicht um einen Bot handelt, und führt die restlichen WAF-Regeln aus. Anforderungen, die die Überprüfung nicht erfolgreich berechnen, werden blockiert.

CORS-Anforderungen (Cross-Origin Resource Sharing) werden bei jedem Zugriffsversuch überprüft. Wenn ein Client also auf eine Seite zugreift, die die JavaScript-Überprüfung über eine andere Domäne als die Domäne auslöst, die die Überprüfung hostet, muss der Client die Überprüfung erneut durchlaufen, selbst wenn er sie zuvor bestanden hat.

Wenn ein Client die JavaScript-Herausforderung löst und sich dann die IP-Adresse des Clients ändert, wird die Abfrage erneut ausgegeben.

Hier sehen Sie ein Beispiel für eine JavaScript-Überprüfungsseite:

Screenshot: Seite mit JavaScript-Überprüfung

Ablauf

Die WAF-Richtlinieneinstellung definiert die Gültigkeitsdauer des JavaScript-Überprüfungscookies in wenigen Minuten. Die Benutzenden werden nach Ablauf der Lebensdauer überprüft. Die Lebensdauer ist eine ganze Zahl zwischen 5 und 1.440 Minuten, und der Standardwert beträgt 30 Minuten. Der JavaScript-Abfrage-Cookiename befindet sich appgw_azwaf_jsclearance im Azure-Anwendungsgateway.

Die WAF-Richtlinieneinstellung definiert die Gültigkeitsdauer des JavaScript-Überprüfungscookies in wenigen Minuten. Die Benutzenden werden nach Ablauf der Lebensdauer überprüft. Die Lebensdauer ist eine ganze Zahl zwischen 5 und 1.440 Minuten, und der Standardwert beträgt 30 Minuten. Der JavaScript-Abfrage-Cookiename befindet sich afd_azwaf_jsclearance auf Azure Front Door.

Hinweis

Das Ablaufcookie der JavaScript-Challenge wird nach erfolgreichem Abschluss der Challenge in den Browser des Benutzers eingefügt.

Einschränkungen

  • AJAX- und API-Aufrufe werden nicht unterstützt: JavaScript-Herausforderung gilt nicht für AJAX- und API-Anforderungen.
  • POST-Körpergrößenbeschränkung: Die erste Anfrage, die eine JavaScript-Herausforderung auslöst, wird blockiert, wenn ihr POST-Körper 128 KB auf dem Azure Application Gateway überschreitet.
  • POST-Körpergrößenbeschränkung: Die erste Anfrage, die eine JavaScript-Herausforderung auslöst, wird blockiert, wenn ihr POST-Körper auf Azure Front Door 64 KB überschreitet.
  • Eingebettete Ressourcen ohne HTML: Die JavaScript-Herausforderung wurde für HTML-Ressourcen entwickelt. Herausforderungen für nicht-HTML-Ressourcen, die in eine Seite eingebettet sind, z. B. Bilder, CSS, JavaScript-Dateien oder ähnliche Ressourcen, werden nicht unterstützt. Wenn jedoch eine vorherige erfolgreiche JavaScript-Abfrageanforderung aufgetreten ist, werden diese Einschränkungen aufgehoben.

  • Browserkompatibilität: Die JavaScript-Herausforderung wird in Microsoft Internet Explorer nicht unterstützt. Es ist kompatibel mit den neuesten Versionen von Microsoft Edge, Chrome, Firefox und Safari-Webbrowsern.

  • Ratenbegrenzung wird nicht unterstützt: Die JavaScript-Herausforderung auf dem Application Gateway wird für benutzerdefinierte Regeln mit dem Typ Ratenbegrenzung während der Vorschau nicht unterstützt.

  • Anwendungsgateway für Container WAF: Das Anwendungsgateway für Container WAF unterstützt keine JavaScript-Herausforderung.