ADC

Konsistenzprüfung von Formularfeldern

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 mit oder ohne Daten enthalten. Sie gilt nicht für XML-Anfragen.

Die Konsistenzprüfung der Formularfelder verhindert, dass Kunden beim Ausfüllen und Absenden eines Formulars unbefugte Ä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 versteckten Feldern nicht geändert werden. Dadurch wird verhindert, dass ein Angreifer ein Webformular manipuliert und das modifizierte Formular verwendet, um sich unbefugten Zugriff auf eine Website zu verschaffen, die Ausgabe eines Kontaktformulars, das ein unsicheres Skript verwendet, umzuleiten und dadurch unerwünschte Massen-E-Mails zu versenden oder eine Sicherheitslücke in Ihrer Webserversoftware auszunutzen, um die Kontrolle über den Webserver oder das zugrunde liegende Betriebssystem zu erlangen. Webformulare sind auf vielen Websites ein schwaches Glied 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 Prüfung sicher, dass es vom Benutzer zurückgegeben wird.
  • Die Prüfung erzwingt die Längen und Typen von HTML-Feldern.

    Hinweis:

    • Die Konsistenzprüfung für Formularfelder erzwingt HTML-Einschränkungen in Bezug auf Datentyp und Länge, validiert die Daten in Webformularen jedoch nicht. Sie können die Feldformatprüfung verwenden, um Regeln einzurichten, die Daten validieren, die in bestimmten Formularfeldern in Ihren Webformularen zurückgegeben wurden.

    • 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 Client das Formular absendet. Wenn clientseitiges Javascript die Prüfsummenberechnung in den Formularfeldern durchführt und dieselbe Prüfsumme im Backend überprüft, kann dies zu einem Anwendungsbruch 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 darin enthaltene Daten zurückzugeben.
  • Wenn es sich bei einem Feld um ein schreibgeschütztes oder ausgeblendetes Feld handelt, wird durch die Prüfung überprüft, ob sich die Daten nicht geändert haben.
  • Wenn es sich bei einem Feld um ein Listenfeld oder ein Optionsfeld handelt, wird durch die Prüfung ü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 für Formularfelder verstößt und Sie die Web App Firewall nicht so konfiguriert haben, dass dieses Webformular die Konsistenzprüfungen für Formularfelder verletzt, wird die Anfrage blockiert.

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

Sie konfigurieren auch Sitzungslose Feldkonsistenz auf der Registerkarte Allgemein. Wenn die Sitzungslose Feldkonsistenz aktiviert ist, überprüft die Web App Firewall nur die Webformularstruktur und verzichtet auf die Teile der Konsistenzprüfung für Formularfelder, die von der Verwaltung der Sitzungsinformationen abhängen. Dies kann die Konsistenzprüfung von Formularfeldern mit geringen Sicherheitseinbußen für Websites, die viele Formulare verwenden, beschleunigen. 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 eingereicht wurden, wählen Sie POSTOnly aus.

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 von Formularfeldern anzugeben, 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:

Namen der Formularfelder:

  • Wählen Sie Formularfelder mit dem Namen UserType aus:

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

     ^UserType_[0-9A-Za-z][0-9A-Za-z'-]{0,20}$
     <!--NeedCopy-->
    
  • Wählen Sie Formularfelder aus, deren Namen mit Turkish-UserType_ beginnen und ansonsten mit dem vorherigen Ausdruck identisch sind, außer dass sie durchgehend 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-->
    

Aktions-URLs für Formularfelder:

  • Wählen Sie URLs, die mit einer beliebigen Zeichenfolge beginnen http://www.example.com/search.pl? und diese nach der Abfrage enthalten, mit Ausnahme einer neuen Abfrage:

     ^http://www[.]example[.]com/search[.]pl?[^?]*$
     <!--NeedCopy-->
    
  • Wählen Sie URLs, die mit Pfaden http://www.example-español.com und Dateinamen beginnen und diese enthalten, 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-Zeichenketten 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 genau 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 sonst nichts. 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 von Formularfeldern

In diesem Artikel