Ergänzende Informationen zu Profilen
Im Folgenden finden Sie zusätzliche Informationen zu bestimmten Aspekten von Web App Firewall-Profilen. In diesen Informationen wird erläutert, wie Sonderzeichen in eine Sicherheitsüberprüfungsregel oder Entspannung aufgenommen werden und wie Variablen beim Konfigurieren von Profilen verwendet werden.
Unterstützung von Konfigurationsvariablen
Anstatt statische Werte zu verwenden, können Sie zum Konfigurieren der Sicherheitsüberprüfungen und -einstellungen der Web App Firewall jetzt benannte Citrix ADC-Standardvariablen verwenden. Durch das Erstellen von Variablen können Sie Konfigurationen einfacher exportieren und dann in neue Citrix ADC Appliances importieren oder vorhandene Citrix ADC Appliances aus einem einzigen Satz von Konfigurationsdateien aktualisieren. Dies vereinfacht Updates, wenn Sie ein Testbett-Setup verwenden, um eine komplexe Web App Firewall-Konfiguration zu entwickeln, die auf Ihr lokales Netzwerk und Ihre Server abgestimmt ist, und diese Konfiguration dann auf Ihre Citrix ADC-Produktionsanlagen übertragen.
Sie erstellen Web App Firewall Konfigurationsvariablen auf die gleiche Weise wie alle anderen Citrix ADC Variablen, die nach den standardmäßigen Citrix ADC-Konventionen ausgeführt werden. Sie können eine benannte Ausdrucksvariable erstellen, indem Sie die GUI und die Citrix ADC-Befehlszeilenschnittstelle verwenden.
Die folgenden URLs und Ausdrücke können mit Variablen anstelle von statischen Werten konfiguriert werden:
- URL starten (-starturl)
- URL verweigern (-denyurl)
- Formularaktions-URL für Konsistenzprüfung von Formularfeldern (-fieldconsistency)
- Aktions-URL für XML SQL Injection Check (-xmlSQLInjection)
- Aktions-URL für XML-Cross-Site-Scripting Check (-xmlcross-site scripting)
- Formularaktions-URL für HTML SQL Injection Check (-sqlInjection)
- Formularaktions-URL für Field Format Check (-fieldFormat)
- Formularursprung-URL und Formularaktions-URL für die Prüfung auf websiteübergreifende Anforderungsfälschung (CSRF) (-csrfTag)
- Formularaktions-URL für die HTML Cross-Site Scripting Check (-crossSiteScripting)
- Safe Object (-safeObject)
- Aktions-URL für XML Denial-of-Service (XDoS)-Prüfung (-XMLDoS)
- URL für die Interoperabilitätsprüfung von Webdiensten (-XMLWSIURL)
- <URL für die XML-Validierungsprüfung (-XMLValidationURL)
- URL für die Überprüfung von XML-Anhängen (-XMLAttachmentURL)
Weitere Informationen finden Sie unter Richtlinien und Ausdrücke.
Um eine Variable in der Konfiguration zu verwenden, schließen Sie den Variablennamen zwischen zwei bei (@) -Symbolen ein und verwenden sie dann genau so, wie Sie den statischen Wert, den sie ersetzt. Wenn Sie beispielsweise die Deny-URL-Prüfung über die grafische Benutzeroberfläche konfigurieren und die benannte Ausdrucksvariable myDenyURL zur Konfiguration hinzufügen möchten, geben Sie @myDenyURL@ in das Dialogfeld Verweigern-URL hinzufügen im Textbereich URL verweigern ein. Um dieselbe Aufgabe mithilfe der Citrix ADC-Befehlszeile auszuführen, geben Sie appfw profile <name>
-denyURLAction @myDenyURL@ ein.
PCRE-Zeichencodierungsformat
Das Citrix ADC-Betriebssystem unterstützt nur die direkte Eingabe von Zeichen in den druckbaren ASCII-Zeichensatz — Zeichen mit Hexadezimalcodes zwischen HEX 20 (ASCII 32) und HEX 7E (ASCII 127). Um ein Zeichen mit einem Code außerhalb dieses Bereichs in Ihre Web App Firewall-Konfiguration aufzunehmen, müssen Sie seinen UTF-8-Hexadezimalcode als regulären PCRE-Ausdruck eingeben.
Für eine Reihe von Zeichentypen ist die Codierung mit einem regulären PCRE-Ausdruck erforderlich, wenn Sie sie als URL, Formularfeldname oder Safe-Object-Ausdruck in Ihre Web App Firewall-Konfiguration aufnehmen. Sie beinhalten:
-
Obere-ASCII-Zeichen. Zeichen mit Kodierungen von HEX 7F (ASCII 128) bis HEX FF (ASCII 255). Abhängig von der verwendeten Zeichenzuordnung können sich diese Kodierungen auf Steuercodes, ASCII-Zeichen mit Akzenten oder anderen Modifikationen, nicht-lateinische Alphabet-Zeichen und Symbole beziehen, die nicht im ASCII-Basissatz enthalten sind. Diese Zeichen können in URLs, Formularfeldnamen und sicheren Objektausdrücken vorkommen.
-
Doppelbyte-Zeichen. Zeichen mit Kodierungen, die zwei 8-Byte-Wörter verwenden. Doppelbyte-Zeichen werden hauptsächlich für die Darstellung von chinesischem, japanischem und koreanischem Text in elektronischer Form verwendet. Diese Zeichen können in URLs, Formularfeldnamen und sicheren Objektausdrücken vorkommen.
-
ASCII-Steuerzeichen. Nicht druckbare Zeichen, die zum Senden von Befehlen an einen Drucker verwendet werden. Alle ASCII-Zeichen mit Hexadezimalcodes kleiner als HEX 20 (ASCII 32) fallen in diese Kategorie. Diese Zeichen dürfen jedoch niemals in einem URL- oder Formularfeldnamen vorkommen und würden selten, wenn überhaupt, in einem sicheren Objektausdruck vorkommen.
Die Citrix ADC Appliance unterstützt nicht den gesamten UTF-8-Zeichensatz, sondern nur die Zeichen in den folgenden acht Zeichensätzen:
-
Englisch US (ISO-8859-1). Obwohl die Bezeichnung “English US” lautet, unterstützt die Web App Firewall alle Zeichen im ISO-8859-1-Zeichensatz, auch Latin-1-Zeichensatz genannt. Dieser Zeichensatz repräsentiert vollständig die meisten modernen westeuropäischen Sprachen und repräsentiert alle bis auf einige ungewöhnliche Zeichen im Rest.
-
Traditionelles Chinesisch (Big5). Die Web App Firewall unterstützt alle Zeichen im BIG5-Zeichensatz, der alle traditionellen chinesischen Schriftzeichen (Ideogramme) enthält, die im modernen Chinesisch häufig verwendet werden, wie sie in Hongkong, Macau, Taiwan und von vielen Menschen chinesischer ethnischer Herkunft, die außerhalb des chinesischen Festlandes leben, gesprochen und geschrieben werden.
-
Chinesisch vereinfacht (GB2312). Die Web App Firewall unterstützt alle Zeichen im GB2312-Zeichensatz, der alle im modernen Chinesisch gebräuchlichen vereinfachten chinesischen Schriftzeichen (Ideogramme) enthält, wie sie auf dem chinesischen Festland gesprochen und geschrieben werden.
-
Japanisch (SJIS). Die Web App Firewall unterstützt alle Zeichen im Shift-JIS (SJIS) -Zeichensatz, der die meisten Zeichen (Ideogramme) enthält, die üblicherweise im modernen Japanisch verwendet werden.
-
Japanisch (EUC-JP). Die Web App Firewall unterstützt alle Zeichen im EUC-JP-Zeichensatz, einschließlich aller Zeichen (Ideogramme), die üblicherweise im modernen Japanisch verwendet werden.
-
Koreanisch (EUC-KR). Die Web App Firewall unterstützt alle Zeichen im EUC-KR-Zeichensatz, einschließlich aller Zeichen (Ideogramme), die üblicherweise im modernen Koreanisch verwendet werden.
-
türkisch (ISO-8859-9). Die Web App Firewall unterstützt alle Zeichen im ISO-8859-9-Zeichensatz, der alle im modernen Türkisch verwendeten Buchstaben umfasst.
-
Unicode (UTF-8). Die Web App Firewall unterstützt bestimmte zusätzliche Zeichen im UTF-8-Zeichensatz, einschließlich solcher, die im modernen Russisch verwendet werden.
Bei der Konfiguration der Web App Firewall geben Sie alle Nicht-ASCII-Zeichen als reguläre Ausdrücke im PCRE-Format ein, indem Sie den Hexadezimalcode verwenden, der diesem Zeichen in der UTF-8-Spezifikation zugewiesen ist. Symbolen und Zeichen innerhalb des normalen ASCII-Zeichensatzes, denen in diesem Zeichensatz einzelne, zweistellige Codes zugewiesen sind, werden im UTF-8-Zeichensatz dieselben Codes zugewiesen. Zum Beispiel das Ausrufezeichen (!) , dem der Hexadezimalcode 21 im ASCII-Zeichensatz zugewiesen ist, ist auch Hex 21 im UTF-8-Zeichensatz. Symbolen und Zeichen aus einem anderen unterstützten Zeichensatz sind paarweise Hexadezimalcodes im UTF-8-Zeichensatz zugewiesen. Zum Beispiel wird dem Buchstaben a mit einem akuten Akzent (á) der UTF-8-Code C3 A1 zugewiesen.
Die Syntax, die Sie verwenden, um diese UTF-8-Codes in der Konfiguration der Web App Firewall darzustellen, ist “xNN” für ASCII-Zeichen, “\ xNN\ xNN” für Nicht-ASCII-Zeichen, die in Englisch, Russisch und Türkisch verwendet werden, und “\ xNN\ xNN\ xNN” für Zeichen, die in Chinesisch, Japanisch und Koreanisch verwendet werden. Zum Beispiel, wenn Sie eine! in einem regulären Ausdruck der Web App Firewall als UTF-8-Zeichen würden Sie\ x21 eingeben. Wenn Sie ein á einschließen möchten, geben Sie\ xC3\ xA1 ein.
Hinweis:
Normalerweise müssen Sie keine ASCII-Zeichen im UTF-8-Format darstellen, aber wenn diese Zeichen einen Webbrowser oder ein zugrunde liegendes Betriebssystem verwirren könnten, können Sie die UTF-8-Darstellung des Charakters verwenden, um diese Verwirrung zu vermeiden. Wenn eine URL beispielsweise ein Leerzeichen enthält, möchten Sie den Space möglicherweise als x20 codieren, um bestimmte Browser und Webserver-Software nicht zu verwechseln.
Im Folgenden finden Sie Beispiele für URLs, Formularfeldnamen und sichere Objektausdrücke, die Nicht-ASCII-Zeichen enthalten, die als reguläre Ausdrücke im PCRE-Format eingegeben werden müssen, um in die Konfiguration der Web App Firewall aufgenommen zu werden. Jedes Beispiel zeigt zuerst die tatsächliche URL, den Feldnamen oder die Ausdruckszeichenfolge, gefolgt von einem regulären Ausdruck im PCRE-Format.
-
Eine URL mit erweiterten ASCII-Zeichen.
Aktuelle URL:
http://www.josénuñez.com
Codierte URL:
^http://www\[.\]jos\xC3\xA9nu\xC3\xB1ez\[.\]com$
-
Eine weitere URL mit erweiterten ASCII-Zeichen.
Aktuelle URL:
http://www.example.de/trömso.html
Codierte URL:
^http://www[.]example\[.]de/tr\xC3\xB6mso[.]html$
-
Ein Formularfeldname mit erweiterten ASCII-Zeichen.
Actual Name: nome_do_usuário
Codierter Name:
^nome_do_usu\xC3\xA1rio$
-
Ein sicherer Objektausdruck, der erweiterte ASCII-Zeichen enthält.
Uncodierter Ausdruck [A-Z] {3,6} ¥[1-9][0-9]{6,6}
Codierter Ausdruck: [A-Z] {3,6}\ xC2\ xA5[1-9][0-9]{6,6}
Sie können eine Reihe von Tabellen finden, die den gesamten Unicode-Zeichensatz und die passenden UTF-8-Kodierungen im Internet enthalten. Eine nützliche Website, die diese Informationen enthält, befindet sich unter der folgenden URL:
http://www.utf8-chartable.de/unicode-utf8-table.pl
Damit die Zeichen in der Tabelle auf dieser Website korrekt angezeigt werden, muss auf Ihrem Computer eine entsprechende Unicode-Schriftart installiert sein. Wenn Sie dies nicht tun, ist die visuelle Anzeige des Charakters möglicherweise fehlerhaft. Selbst wenn Sie keine geeignete Schriftart zur Anzeige eines Zeichens installiert haben, sind die Beschreibung und die UTF-8- und UTF-16-Codes auf diesen Webseiten korrekt.
Invertierte PCRE-Ausdrücke
Zusätzlich zum übereinstimmenden Inhalt, der ein Muster enthält, können Sie auch Inhalt zuordnen, der kein Muster enthält, indem Sie einen invertierten PCRE-Ausdruck verwenden. Um einen Ausdruck umzukehren, fügen Sie einfach ein Ausrufezeichen (!) gefolgt von Leerraum als erstes Zeichen im Ausdruck.
Hinweis: Wenn ein Ausdruck nur aus einem Ausrufezeichen besteht und nichts folgt, wird das Ausrufezeichen als Literalzeichen behandelt und nicht als Syntax, die einen invertierten Ausdruck angibt.
Die folgenden Web App Firewall Befehle unterstützen invertierte PCRE-Ausdrücke:
- Start-URL (URL)
- URL verweigern (URL)
- Konsistenz des Formularfeldes (Formularaktions-URL)
- Cookie-Konsistenz (Formularaktions-URL)
- Websiteübergreifende Anforderungsfälschung (CSRF) (Formularaktions-URL)
- HTML Cross-site Scripting (Formularaktions-URL)
- Feldformat (Formularaktions-URL)
- Feldtyp (Typ)
- Vertrauliches Feld (URL)
Hinweis: Wenn die Sicherheitsüberprüfung ein IsRegex-Flag oder -Kontrollkästchen enthält, muss sie auf YES gesetzt oder aktiviert sein, um reguläre Ausdrücke im Feld zu aktivieren. Andernfalls wird der Inhalt dieses Feldes als Literal behandelt und es werden keine regulären Ausdrücke (invertiert oder nicht) analysiert.
Unzulässige Namen für Web App Firewall-Profile
Die folgenden Namen werden integrierten Aktionen und Profilen auf der Citrix ADC Appliance zugewiesen und können nicht als Namen für ein vom Benutzer erstelltes Web App Firewall-Profil verwendet werden.
- AGRESSIVE
- ALLOW
- BASIC
- CLIENTAUTH
- COMPRESS
- CSSMINIFY
- DEFLATE
- DENY
- DNS-NOP
- DROP
- GZIP
- HTMLMINIFY
- IMGOPTIMIZE
- JSMINIFY
- MODERATE
- NOCLIENTAUTH
- NOCOMPRESS
- NONE
- NOOP
- NOREWRITE
- RESET
- SETASLEARNNSLOG_ACT
- SETNSLOGPARAMS_ACT
- SETSYSLOGPARAMS_ACT
- SETTMSESSPARAMS_ACT
- SETVPNPARAMS_ACT
- SET_PREAUTHPARAMS_ACT
- default_DNS64_action
- dns_default_act_Cachebypass
- dns_default_act_Drop
- nshttp_default_profile
- nshttp_default_strict_validation
- nstcp_default_Mobile_profile
- nstcp_default_XA_XD_profile
- nstcp_default_profile
- nstcp_default_tcp_interactive_stream
- nstcp_default_tcp_lan
- nstcp_default_tcp_lan_thin_stream
- nstcp_default_tcp_lfp
- nstcp_default_tcp_lfp_thin_stream
- nstcp_default_tcp_lnp
- nstcp_default_tcp_lnp_thin_stream
- nstcp_internal_apps