Citrix ADC

Konsistenzprüfung des Formularfelds

Die Konsistenzprüfung für Formularfelder untersucht die von Benutzern Ihrer Website zurückgegebenen Webformulare und überprüft, ob Webformulare nicht unangemessen vom Client 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 Clients nicht autorisierte Änderungen an der Struktur der Webformulare auf Ihrer Website vornehmen, wenn sie ein Formular ausfüllen und absenden. 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 modifizierte Formular verwendet, um unbefugten Zugriff auf die Website zu erhalten, die Ausgabe eines Kontaktformulars, das ein unsicheres Skript verwendet, umleiten und dadurch unerwünschte Massen-E-Mails senden, oder eine Schwachstelle in Ihrer Webserver-Software ausnutzen, um die Kontrolle über die -Webserver oder das zugrunde liegende Betriebssystem. Webformulare sind eine schwache Verbindung auf vielen Websites und ziehen eine breite Palette 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.

  • 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 von Formularfeldern mit wenig Sicherheitseinbußen 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. Beide Dialogfelder bieten dieselben Optionen zum Konfigurieren einer Entspannung, wie unter beschriebenManuelle Konfiguration mit der GUI.

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

Formularfeldnamen:

  • Wählen Sie Formularfelder mit dem Namen UserType:

     ^UserType$
    
  • 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}$
    
  • 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])+$
    

    Hinweis:

    EinePCRE-Zeichenkodierungsformatvollständige Beschreibung der unterstützten Sonderzeichen und deren korrekte Kodierung finden Sie unter.

  • 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]\*$
    

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?[^?]*$
    
  • 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?)$
    
  • Wählen Sie alle URLs aus, die die Zeichenfolge /search.cgi? enthalten:

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

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 Kombination mit Punkt und Sternchen (.*) mit Metazeichen und Platzhaltern kann zu Ergebnissen führen, die Sie nicht erwarten oder erwarten, wie zum Beispiel das Blockieren des Zugriffs auf Webinhalte, die Sie nicht blockieren wollten oder einen Angriff zulassen, den die Cookie-Konsistenzprüfung ansonsten hätte blockiert.

Konsistenzprüfung des Formularfelds