ADC

Konsistenzprüfung des Formularfelds

Die Konsistenzprüfung für Formularfelder untersucht die von Benutzern Ihrer Website zurückgegebenen Webformulare und stellt sicher, dass Webformulare vom Kunden nicht unangemessen geändert wurden. Diese Prüfung gilt nur für HTML-Anfragen, die ein Webformular enthalten, mit oder ohne Daten. Es gilt nicht für XML-Anforderungen.

Die Konsistenzprüfung für Formularfelder verhindert, dass Kunden beim Ausfüllen und Absenden eines Formulars nicht autorisierte Änderungen an der Struktur der Webformulare auf Ihrer Website vornehmen. Es stellt außerdem sicher, dass die von einem Benutzer übermittelten Daten die HTML-Einschränkungen für Länge und Typ erfüllen und dass Daten in ausgeblendeten Feldern nicht geändert werden. Dies verhindert, dass ein Angreifer ein Webformular manipuliert und das geänderte Formular verwendet, um unbefugten Zugriff auf die Website zu erhalten, die Ausgabe eines Kontaktformulars umzuleiten, das ein unsicheres Skript verwendet und dadurch unerwünschte Massen-E-Mails sendet, oder eine Schwachstelle in Ihrer Webserversoftware auszunutzen, um die Kontrolle über das Internet zu erlangen -Server oder das zugrunde liegende Betriebssystem. Webformulare sind auf vielen Websites ein schwaches Bindeglied und ziehen eine Vielzahl von Angriffen an.

Die Konsistenzprüfung für Formularfelder überprüft alle folgenden Punkte:

  • Wenn ein Feld an den Benutzer gesendet wird, stellt die Überprüfung sicher, dass es vom Benutzer zurückgegeben wird.
  • Die Prüfung erzwingt HTML-Feldlängen und -typen.

    Hinweis:

    • Die Konsistenzprüfung für Formularfelder erzwingt HTML-Beschränkungen für Datentyp und Länge, überprüft jedoch nicht anderweitig die Daten in Webformularen. Sie können das Kontrollkästchen Feldformate verwenden, um Regeln einzurichten, mit denen Daten überprüft werden, die in bestimmten Formularfeldern in Ihren Webformularen zurückgegeben werden.

    • Der Konsistenzschutz für Formularfelder fügt ein verstecktes Feld “as_fid” in die Antwortformulare ein, das an den Client gesendet wird. Das gleiche versteckte Feld wird von ADC entfernt, wenn der Kunde das Formular einreicht. Wenn clientseitiges JavaScript in den Formularfeldern eine Prüfsummenberechnung durchführt und dieselbe Prüfsumme im Backend überprüft wird, kann dies zu einem Bruch der Anwendung führen. In diesem Szenario wird empfohlen, das versteckte Feld für die Anwendungsfirewall-Formularfeldkonsistenz “as_fid” von der clientseitigen JavaScript-Prüfsummenberechnung zu lockern.

  • Wenn Ihr Webserver kein Feld an den Benutzer sendet, erlaubt die Prüfung dem Benutzer nicht, dieses Feld hinzuzufügen und Daten darin zurückzugeben.
  • Wenn es sich bei einem Feld um ein schreibgeschütztes oder ausgeblendetes Feld handelt, wird überprüft, ob sich die Daten nicht geändert haben.
  • Wenn es sich bei einem Feld um ein Listenfeld oder ein Optionsfeld handelt, wird überprüft, ob die Daten in der Antwort einem der Werte in diesem Feld entsprechen.

Wenn ein von einem Benutzer zurückgegebenes Webformular gegen eine oder mehrere der Konsistenzprüfungen des Formularfelds verstößt und Sie die Web App Firewall nicht so konfiguriert haben, dass dieses Webformular gegen die Konsistenzprüfungen von Formularfeldern verstößt, wird die Anforderung blockiert.

Wenn Sie den Assistenten oder die GUI verwenden, können Sie im Dialogfeld Konsistenzprüfung für Formularfelder ändern auf der Registerkarte Allgemein die Aktionen Blockieren, Protokollieren, Lernen und Statistiken aktivieren oder deaktivieren.

Sie konfigurieren auch Sitzungslose Feldkonsistenz auf der Registerkarte Allgemein. Wenn Sessionless Field Consistency aktiviert ist, überprüft die Web App Firewall nur die Webformularstruktur und verzichtet auf die Teile der Formularfeldkonsistenzprüfung, die von der Pflege der Sitzungsinformationen abhängen. Dies kann die Konsistenzprüfung des Formularfelds mit geringer Sicherheitsstrafe für Websites beschleunigen, die viele Formulare verwenden. Um Sitzungslose Feldkonsistenz in allen Webformularen zu verwenden, wählen Sie On. Um es nur für Formulare zu verwenden, die mit der HTTP POST-Methode übermittelt wurden, wählen Sie PostOnly

Wenn Sie die Befehlszeilenschnittstelle verwenden, können Sie den folgenden Befehl eingeben, um die Konsistenzprüfung für Formularfelder zu konfigurieren:

  • set appfw profile <name> -fieldConsistencyAction [**block**] [**learn**] [**log**] [**stats**] [**none**]

Um Relaxationen für die Konsistenzprüfung des Formularfelds festzulegen, müssen Sie die GUI verwenden. Klicken Sie auf der Registerkarte Prüfungen des Dialogfelds Konsistenzprüfung für Formularfelder ändern auf Hinzufügen, um das Dialogfeld Konsistenzprüfung hinzufügen zu öffnen, oder wählen Sie eine vorhandene Entspannung aus, und klicken Sie auf Öffnen, um das Dialogfeld Konsistenzprüfung für Formularfelder ändern zu öffnen. In beiden Dialogfeldern finden Sie die gleichen Optionen zum Konfigurieren einer Entspannung, wie unter Manuelle Konfiguration durch Verwendung der GUIbeschrieben.

Im Folgenden finden Sie Beispiele für die Konsistenzprüfung von Formularfeld-Konsistenzprüfungen:

Formularfeldnamen:

  • Wählen Sie Formularfelder mit dem Namen UserType:

     ^UserType$
     <!--NeedCopy-->
    
  • Wählen Sie Formularfelder mit Namen aus, die mit UserType_ beginnen und eine Zeichenfolge folgen, die mit einem Buchstaben oder einer Zahl beginnt und aus einem bis einundzwanzig Buchstaben, Zahlen oder dem Apostroph oder Bindestrich besteht:

     ^UserType_[0-9A-Za-z][0-9A-Za-z'-]{0,20}$
     <!--NeedCopy-->
    
  • Wählen Sie Formularfelder mit Namen aus, die mit Türkisch-UserType_ beginnen und andernfalls mit dem vorherigen Ausdruck identisch sind, außer dass sie türkische Sonderzeichen enthalten können:

     ^T\xC3\xBCrk\xC3\xA7e-UserType_([0-9A-Za-z]|\x[0-9A-Fa-f][0-9A-Fa-f])+$
     <!--NeedCopy-->
    

    Hinweis:

    Eine vollständige Beschreibung der unterstützten Sonderzeichen und deren ordnungsgemäße Kodierung finden Sie unter PCRE-Zeichenkodierungsformat .

  • Wählen Sie Formularfeldnamen aus, die mit einem Buchstaben oder einer Zahl beginnen, nur aus einer Kombination aus Buchstaben und/oder Zahlen bestehen und die die Zeichenfolge Num an beliebiger Stelle in der Zeichenfolge enthalten:

     ^[0-9A-Za-z]\*Num[0-9A-Za-z]\*$
     <!--NeedCopy-->
    

URLs für Formularfeldaktionen:

  • Wählen Sie URLs, die mit einer beliebigen Zeichenfolge nach der Abfrage beginnenhttp://www.example.com/search.pl? und diese enthalten, außer für eine neue Abfrage:

     ^http://www[.]example[.]com/search[.]pl?[^?]*$
     <!--NeedCopy-->
    
  • Wählen Sie URLs aus, die mit http://www.example-español.com beginnen und Pfade und Dateinamen haben, die aus Groß- und Kleinbuchstaben, Zahlen, Nicht-ASCII-Sonderzeichen und ausgewählten Symbolen im Pfad bestehen. Das Zeichen ñ und alle anderen Sonderzeichen werden als codierte UTF-8-Zeichenfolgen dargestellt, die den Hexadezimalcode enthalten, der jedem Sonderzeichen im UTF-8-Zeichensatz zugewiesen ist:

     ^http://www[.]example-espa\xC3\xB1ol[.]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-->
    
  • Wählen Sie alle URLs aus, die die Zeichenfolge /search.cgi? enthalten:

     ^[^?<>]\*/search[.]cgi?[^?<>]\*$
     <!--NeedCopy-->
    

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 Wildcards und insbesondere der Punkt-Sternchen-Kombination (.*) kann zu Ergebnissen führen, die Sie nicht wollen oder erwarten, z. B. das Blockieren des Zugriffs auf Webinhalte, die Sie nicht blockieren wollten oder einen Angriff zulassen, den die Cookie-Konsistenzprüfung anderweitig hätte geblockt.

Konsistenzprüfung des Formularfelds

In diesem Artikel