ADC

URL-Prüfung starten

Die Start-URL-Prüfung untersucht die URLs in eingehenden Anforderungen und blockiert den Verbindungsversuch, wenn die URL die angegebenen Kriterien nicht erfüllt. Um die Kriterien zu erfüllen, muss die URL mit einem Eintrag in der Liste Start-URL übereinstimmen, es sei denn, der Parameter URL-Schließung erzwingen ist aktiviert. Wenn Sie diesen Parameter aktivieren, ist ein Benutzer, der auf einen Link auf Ihrer Website klickt, mit dem Ziel dieses Links verbunden.

Der Hauptzweck der Start-URL-Prüfung besteht darin, wiederholte Versuche zu verhindern, auf zufällige URLs auf einer Website zuzugreifen (kraftvolles Surfen) durch Lesezeichen, externe Links oder das Springen zu Seiten, indem die URLs manuell eingegeben werden, um diesen Teil der Website zu erreichen. Erzwungenes Browsen kann verwendet werden, um einen Pufferüberlauf auszulösen, Inhalte zu finden, auf die Benutzer nicht direkt zugreifen sollen, oder eine Hintertür in sicheren Bereichen Ihres Webservers zu finden. Die Web App Firewall erzwingt den angegebenen Traversal- oder Logikpfad einer Website, indem nur Zugriff auf die URLs gewährt wird, die als Start-URLs konfiguriert sind.

Wenn Sie den Assistenten oder die GUI verwenden, können Sie im Dialogfeld Start URL Check ändern auf der Registerkarte Allgemein Sperren, Protokollieren, Statistiken, Lernaktionen und die folgenden Parameter aktivieren oder deaktivieren:

  • URL-Schließung erzwingen. Ermöglichen Sie Benutzern den Zugriff auf jede Webseite Ihrer Website, indem Sie auf einen Hyperlink auf einer anderen Seite Ihrer Website klicken. Benutzer können zu jeder Seite Ihrer Website navigieren, die von der Startseite oder einer bestimmten Startseite aus erreicht werden kann, indem sie auf Hyperlinks klicken. Hinweis: Die URL-Schließfunktion ermöglicht es, jede Abfragezeichenfolge anzuhängen und mit der Aktion-URL eines Webformulars zu senden, das mit der HTTP-GET-Methode gesendet wird. Wenn Ihre geschützten Websites Formulare für den Zugriff auf eine SQL-Datenbank verwenden, stellen Sie sicher, dass Sie die SQL-Injection-Prüfung aktiviert und ordnungsgemäß konfiguriert haben.
  • Sitzungsloser URL-Abschluss. Aus Sicht des Kunden funktioniert diese Art von URL-Schließung genauso wie die standardmäßige, sitzungsbewusste URL-Schließung, verwendet aber ein in die URL eingebettetes Token anstelle eines Cookies, um die Aktivität des Benutzers zu verfolgen, was deutlich weniger Ressourcen verbraucht. Wenn sitzungslose URL-Schließung aktiviert ist, hängt die Web App Firewall ein as_url_id -Tag an alle URLs, die sich im URL-Abschluss befinden. Hinweis: Wenn Sie sessionless (Sessionless URL Closure) aktivieren, müssen Sie auch den regulären URL-Closure aktivieren (URL-Closure erzwingen), oder der sitzungslose URL-Closure funktioniert nicht.
  • Referer-Header validieren. Stellen Sie sicher, dass der Referer-Header in einer Anfrage, die Webformulardaten von Ihrer geschützten Website anstelle einer anderen Website enthält. Diese Aktion überprüft, ob Ihre Website, kein externer Angreifer, die Quelle des Webformulars ist. Dadurch wird vor Cross-Site Request Forgeries (CSRF) geschützt, ohne dass Formular-Tagging erforderlich ist, was CPU-intensiver ist als Header-Prüfungen. Die Web App Firewall kann den HTTP-Referer-Header auf eine der folgenden vier Arten verarbeiten, je nachdem, welche Option Sie in der Dropdownliste auswählen:
    • Off— Validieren Sie den Referer-Header nicht.
    • If-Present—Validieren Sie den Referer-Header, wenn ein Referer-Header vorhanden ist. Wenn ein ungültiger Referer-Header gefunden wird, generiert die Anforderung eine Referer-Header-Verletzung. Wenn kein Referer-Header vorhanden ist, generiert die Anforderung keine Verweis-Header-Verletzung. Mit dieser Option kann die Web App Firewall Referer-Header-Validierung für Anforderungen durchführen, die einen Referer-Header enthalten, aber keine Anforderungen von Benutzern blockieren, deren Browser den Referer-Header nicht festlegen oder Webproxys oder Filter verwenden, die diesen Header entfernen.
    • Always außer Start-URLs—Validieren Sie den Referer-Header immer. Wenn kein Referer-Header vorhanden ist und die angeforderte URL nicht von der StartURL-Relaxationsregel ausgenommen wird, generiert die Anforderung eine Referer-Header-Verletzung. Wenn der Referer-Header vorhanden ist, aber ungültig ist, generiert die Anforderung eine Referer-Header-Verletzung.
    • Always Except First Request— Validieren Sie immer den Referer-Header. Wenn kein Referer-Header vorhanden ist, ist nur die URL zulässig, auf die zuerst zugegriffen wird. Alle anderen URLs sind ohne gültige Referer-Header gesperrt. Wenn der Referer-Header vorhanden ist, aber ungültig ist, generiert die Anforderung eine Referer-Header-Verletzung.

Eine Start-URL-Einstellung, Closure URLs von Sicherheitsprüfungenausschließen, wird nicht im Dialogfeld Start URL Check ändern konfiguriert, sondern auf der Registerkarte Einstellungen des Profils konfiguriert. Wenn diese Einstellung aktiviert ist, weist die Web App Firewall darauf hin, keine weiteren formularbasierten Prüfungen (wie Cross-Site Scripting und SQL Injection-Prüfung) für URLs durchzuführen, die die URL-Schließungskriterien erfüllen.

Hinweis:

Obwohl die Referer-Header-Prüfung und die Start-URL-Sicherheitsprüfung dieselben Aktionseinstellungen verwenden, ist es möglich, die Referer-Header-Prüfung zu verletzen, ohne die Start-URL-Prüfung zu verletzen. Der Unterschied ist in den Protokollen sichtbar, die Verweiskopfverletzungen getrennt von Start-URL-Überprüfungsverletzungen protokollieren.

Die Referer-Header-Einstellungen (OFF, IF-Present, AlwaysExceptStartUrls und AlwaysExceptFirstRequest) sind in der Reihenfolge der am wenigsten restriktiven angeordnet und funktionieren wie folgt:

OFF:

  • Referer Header wird nicht geprüft.

Wenn vorhanden:

  • Anfrage hat keinen Referer-Header -> Anfrage ist erlaubt.
  • Anfrage hat Referer-Header und die Referer-URL ist in URL-Schließung -> Anfrage ist erlaubt.
  • Anfrage hat Referer-Header und die Referer-URL ist nicht in URL-Schließung -> Anfrage ist blockiert.

AlwaysExceptStartURLs:

  • Anfrage hat keinen Referer-Header und die Anforderungs-URL ist eine Start-URL -> Anfrage ist erlaubt.
  • Anfrage hat keinen Referer-Header und die Anforderungs-URL ist keine Start-URL ->Anforderung ist blockiert.
  • Anfrage hat Referer-Header und die Referer-URL ist in URL-Schließung -> Anfrage ist erlaubt.
  • Anfrage hat Referer-Header und die Referer-URL ist nicht in URL-Schließung -> Anfrage ist blockiert.

AlwaysExceptFirstRequest:

  • Anfrage hat keinen Referer-Header und ist die erste Anforderungs-URL der Sitzung -> Anfrage ist erlaubt.
  • Anfrage hat keinen Referer-Header und ist nicht die erste Anforderungs-URL der Sitzung -> Anfrage ist blockiert.
  • Anfrage hat Referer-Header und ist entweder die erste Anforderungs-URL der Sitzung oder ist in URL-Schließung -> Anfrage ist erlaubt.
  • Request hat Referer-Header und ist weder die erste Anforderungs-URL der Sitzung noch befindet sich in URL-Schließung -> Anfrage ist blockiert.

Wenn Sie die Befehlszeilenschnittstelle verwenden, können Sie die folgenden Befehle eingeben, um die Start-URL-Prüfung zu konfigurieren:

  • set appfw profile <name> -startURLAction [block] [learn] [log] [stats] [none]
  • set appfw profile <name> -startURLClosure ([ON] | [OFF])
  • set appfw profile <name> -sessionlessURLClosure ([ON] | [OFF])
  • set appfw profile <name> -exemptClosureURLsFromSecurityChecks ([ON] | [OFF)
  • set appfw profile <name> -RefererHeaderCheck ([OFF] | [if-present] | [AlwaysExceptStartURLs] | [AlwaysExceptFirstRequest])

Um Relaxationen für die Start-URL-Prüfung festzulegen, müssen Sie die GUI verwenden. Klicken Sie auf der Registerkarte Prüfungen des Dialogfelds Start URL Check ändern auf Hinzufügen, um das Dialogfeld Start URL Check Relaxation hinzufügen zu öffnen, oder wählen Sie eine vorhandene Entspannung aus, und klicken Sie auf Öffnen, um das Dialogfeld URL Check Relaxation ändern zu öffnen. Beide Dialogfelder bieten die gleichen Optionen für die Konfiguration einer Entspannung.

Im Folgenden finden Sie Beispiele für Start-URL-Check-Relaxationen:

  • Erlauben Sie den Zugriff auf die Homepage unter www.example.com:

     ^http://www[.]example[.]com$
     <!--NeedCopy-->
    
  • Benutzer können auf alle Webseiten im statischen HTML (.htm und .html), serveranalysierten HTML (.htp und .shtml), PHP (.php) und Microsoft ASP (.asp) unter www.example.com zugreifen:

     ^http://www[.]example[.]com/([0-9A-Za-z][0-9A-Za-z_-]\*/)\*
     [0-9A-Za-z][0-9A-Za-z_.-]*[.](asp|htp|php|s?html?)$
     <!--NeedCopy-->
    
  • Benutzer können auf Webseiten mit Pfadnamen oder Dateinamen zugreifen, die Nicht-ASCII-Zeichen enthalten, unter www.example-español.com:

     ^http://www[.]example-espaxC3xB1ol[.]com/(([0-9A-Za-z]|x[0-9A-Fa-f][0-9A-Fa-f])([0-9A-Za-z_-]|x[0-9A-Fa-f][0-9A-Fa-f])\*/)\*
     ([0-9A-Za-z]|x[0-9A-Fa-f][0-9A-Fa-f])([0-9A-Za-z_-]|x[0-9A-Fa-f][0-9A-Fa-f])*[.](asp|htp|php|s?html?)$
     <!--NeedCopy-->
    

    Hinweis: Im obigen Ausdruck wurde jede Zeichenklasse mit der Zeichenfolge x[0-9a-Fa-F][0-9A-Fa-f]gruppiert, die allen ordnungsgemäß konstruierten Zeichencodierungszeichenfolgen entspricht, aber keine streunenden Backslash-Zeichen zulässt, die nicht mit einer UTF-8-Zeichencodierungszeichenfolge verknüpft sind. Der doppelte umgekehrte Schrägstrich () ist ein maskierter umgekehrter Schrägstrich, der die Web App Firewall anweist, ihn als wörtlichen umgekehrten Schrägstrich zu interpretieren. Wenn Sie nur einen umgekehrten Schrägstrich enthalten, interpretiert die Web App Firewall stattdessen die folgende linke eckige Klammer ([) als Literalzeichen anstelle des Öffnens einer Zeichenklasse, wodurch der Ausdruck unterbrochen wird.

  • Ermöglichen Sie Benutzern den Zugriff auf alle Grafiken im Format GIF (.gif), JPEG (.jpg und .jpeg) und PNG (.png) unter www.example.com:

     ^http://www[.]example[.]com/([0-9A-Za-z][0-9A-Za-z_-]\*/)\*
     [0-9A-Za-z][0-9A-Za-z_.-]*[.](gif|jpe?g|png)$
     <!--NeedCopy-->
    
  • Erlauben Sie Benutzern den Zugriff auf CGI- (.cgi) und PERL-Skripts (.pl), jedoch nur im CGI-BIN-Verzeichnis:

     ^http://www[.]example[.]com/CGI-BIN/[0-9A-Za-z][0-9A-Za-z_.-]*[.](cgi|pl)$
     <!--NeedCopy-->
    
  • Erlauben Sie Benutzern den Zugriff auf Microsoft Office und andere Dokumentdateien im Verzeichnis docsarchive:

     ^http://www[.]example[.]com/docsarchive/[0-9A-Za-z][0-9A-Za-z_-.]*[.](doc|xls|pdf|ppt)$
     <!--NeedCopy-->
    

Hinweis:

Standardmäßig gelten alle Web App Firewall URLs als reguläre Ausdrücke.

Achtung: Reguläre Ausdrücke sind leistungsstark. Vor allem, wenn Sie mit regulären Ausdrücken im PCRE-Format nicht vertraut sind, überprüfen Sie alle regulären Ausdrücke, die Sie schreiben. Stellen Sie sicher, dass sie genau die URL definieren, die Sie als Ausnahme hinzufügen möchten, und nichts anderes. Die unvorsichtige Verwendung von Platzhaltern und insbesondere der Punkt-Sternchen ( .*) -Metazeichen/Platzhalterkombination kann zu Ergebnissen führen, die Sie nicht wünschen, z. B. zum Blockieren des Zugriffs auf Webinhalte, die Sie nicht blockieren wollten, oder zum Erlauben eines Angriffs, den die Start-URL-Prüfung sonst blockiert hätte.

Tipp

Sie können das -und- zur zulässigen Liste von SQL-Schlüsselwörtern für das URL-Benennungsschema hinzufügen. Zum Beispiel https://FQDN/bread-and-butter.

URL-Prüfung starten

In diesem Artikel