-
-
Konfigurieren der Anwendungsauthentifizierung, Autorisierung und Überwachung
-
-
Konfigurieren von erweiterten Richtlinienausdrücken: Erste Schritte
-
Erweiterte Richtlinienausdrücke: Arbeiten mit Datumsangaben, Zeiten und Zahlen
-
Erweiterte Richtlinienausdrücke: Analysieren von HTTP-, TCP- und UDP-Daten
-
Ausdrücke zur Identifizierung des Protokolls in einem eingehenden IP-Paket
-
Ausdrücke für HTTP-Statuscodes und numerische HTTP-Nutzlastdaten außer Datumsangaben
-
Operationen für HTTP-, HTML- und XML-Codierung und „Sichere“ Zeichen
-
Ausdrücke zum Auswerten einer DNS-Nachricht und zur Identifizierung ihres Carrier-Protokolls
-
Erweiterte Richtlinienausdrücke: Analysieren von SSL-Zertifikaten
-
Erweiterte Richtlinienausdrücke: IP- und MAC-Adressen, Durchsatz, VLAN-IDs
-
Erweiterte Richtlinienausdrücke: Stream-Analytics-Funktionen
-
Zusammenfassende Beispiele für erweiterte Richtlinienausdrücke
-
-
-
-
Verhalten des Content-Length-Headers in einer Rewrite-Richtlinie
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
Geben Sie den Zeichensatz in Ausdrücken an
Die Policy-Infrastruktur auf der NetScaler-Appliance unterstützt ASCII- und UTF-8-Zeichensätze. Der Standard-Zeichensatz ist ASCII. Wenn der Verkehr, für den Sie einen Ausdruck konfigurieren, nur aus ASCII-Zeichen besteht, müssen Sie den Zeichensatz im Ausdruck nicht angeben. Die Appliance erlaubt alle Zeichenketten- und Zeichenliterale, die Binärzeichen enthalten. Die UTF-8-Zeichensätze erfordern jedoch weiterhin, dass die Zeichenketten- und Zeichenliterale gültig sind.
CLIENT.TCP.PAYLOAD(100).CONTAINS("\xff\x02")
In einem Ausdruck muss die Funktion SET_CHAR_SET () an der Stelle im Ausdruck eingeführt werden, nach der die Datenverarbeitung im angegebenen Zeichensatz durchgeführt werden muss. For example, in the expression HTTP.REQ.BODY(1000).AFTER_REGEX(re/following example/).BEFORE_REGEX(re/In the preceding example/).CONTAINS_ANY(“Greek_ alphabet”), if the strings stored in the pattern set “Greek_alphabet” are in UTF-8, you must include the SET_CHAR_SET(UTF_8) function immediately before the CONTAINS_ANY(“<string>”) function, as follows:
HTTP.REQ.BODY(1000).AFTER_REGEX(re/following example/).BEFORE_REGEX(re/In the preceding example/).SET_CHAR_SET(UTF_8).CONTAINS_ANY("Greek_ alphabet")
Die Funktion SET_CHAR_SET () legt den Zeichensatz für die gesamte Weiterverarbeitung (d. h. für alle nachfolgenden Funktionen) im Ausdruck fest, sofern er nicht später im Ausdruck durch eine andere SET_CHAR_SET () -Funktion überschrieben wird, die den Zeichensatz ändert. Therefore, if all the functions in a given simple expression are intended for UTF-8, you can include the SET_CHAR_SET(UTF_8) function immediately after functions that identify text (for example, the HEADER(“<name>”) or BODY(<int>) functions). Wenn im zweiten Beispiel, das auf den ersten Absatz oben folgt, die an die Funktionen AFTER_REGEX () und BEFORE_REGEX () übergebenen ASCII-Argumente in UTF-8-Zeichenketten geändert werden, können Sie die SET_CHAR_SET (UTF_8) -Funktion unmittelbar nach der BODY (1000) -Funktion wie folgt einschließen:
HTTP.REQ.BODY(1000).SET_CHAR_SET(UTF_8).AFTER_REGEX(re/Bücher/).BEFORE_REGEX(re/Wörterbuch/).CONTAINS_ANY("Greek_alphabet")
Der UTF-8-Zeichensatz ist ein Obersatz des ASCII-Zeichensatzes, sodass für den ASCII-Zeichensatz konfigurierte Ausdrücke weiterhin wie erwartet funktionieren, wenn Sie den Zeichensatz auf UTF-8 ändern.
Zusammengesetzte Ausdrücke mit unterschiedlichen Zeichensätzen
Wenn in einem zusammengesetzten Ausdruck eine Teilmenge von Ausdrücken so konfiguriert ist, dass sie mit Daten im ASCII-Zeichensatz funktioniert und die übrigen Ausdrücke so konfiguriert sind, dass sie mit Daten im UTF-8-Zeichensatz arbeiten, wird der für jeden einzelnen Ausdruck angegebene Zeichensatz berücksichtigt, wenn die Ausdrücke einzeln ausgewertet werden. Bei der Verarbeitung des zusammengesetzten Ausdrucks, unmittelbar vor der Verarbeitung der Operatoren, stuft die Appliance den Zeichensatz der zurückgegebenen ASCII-Werte jedoch auf UTF-8 um. Im folgenden zusammengesetzten Ausdruck wertet der erste einfache Ausdruck beispielsweise Daten im ASCII-Zeichensatz aus, während der zweite einfache Ausdruck Daten im UTF-8-Zeichensatz auswertet:
HTTP.REQ.HEADER("MyHeader") == HTTP.REQ.BODY(10).SET_CHAR_SET(UTF_8)
Bei der Verarbeitung des zusammengesetzten Ausdrucks stellt die NetScaler-Appliance jedoch unmittelbar vor der Auswertung des booleschen Operators „ist gleich“ den Zeichensatz des von HTTP.REQ.HEADER („myHeader“) zurückgegebenen Werts auf UTF-8 um.
Der erste einfache Ausdruck im folgenden Beispiel wertet Daten im ASCII-Zeichensatz aus. Wenn die NetScaler-Appliance jedoch den zusammengesetzten Ausdruck verarbeitet, unmittelbar bevor die Ergebnisse der beiden einfachen Ausdrücke miteinander verknüpft werden, stuft die Appliance den Zeichensatz des von HTTP.REQ.BODY (10) zurückgegebenen Werts auf UTF-8 um.
HTTP.REQ.BODY(10) + HTTP.REQ.HEADER("MyHeader").SET_CHAR_SET(UTF_8)
Daher gibt der zusammengesetzte Ausdruck Daten im UTF-8-Zeichensatz zurück.
Geben Sie den Zeichensatz auf der Grundlage des Zeichensatzes des Datenverkehrs an
Sie können den Zeichensatz basierend auf den Verkehrsmerkmalen auf UTF-8 setzen. Wenn Sie sich nicht sicher sind, ob der Zeichensatz des ausgewerteten Datenverkehrs UTF-8 ist, können Sie einen zusammengesetzten Ausdruck konfigurieren, bei dem der erste Ausdruck nach UTF-8-Verkehr sucht und nachfolgende Ausdrücke den Zeichensatz auf UTF-8 setzen. Es folgt ein Beispiel für einen zusammengesetzten Ausdruck, der zuerst den Wert von „charset“ im Content-Type-Header der Anfrage auf „UTF-8“ überprüft, bevor überprüft wird, ob die ersten 1000 Byte der Anfrage die UTF-8-Zeichenfolge Bücher enthalten:
HTTP.REQ.HEADER("Content-Type").SET_TEXT_MODE(IGNORECASE).TYPECAST_NVLIST_T('=', '; ', '"').VALUE("charset").EQ("UTF-8") && HTTP.REQ.BODY(1000).SET_CHAR_SET(UTF_8).CONTAINS("Bücher")
Wenn Sie sicher sind, dass der Zeichensatz des ausgewerteten Datenverkehrs UTF-8 ist, ist der zweite Ausdruck im Beispiel ausreichend.
Zeichen- und Zeichenkettenliterale in Ausdrücken
Bei der Auswertung von Ausdrücken gelten Zeichenliterale und Zeichenfolgenliterale, die in einfache Anführungszeichen (‘’) bzw. Anführungszeichen („“) eingeschlossen sind, als Literale im UTF-8-Zeichensatz, selbst wenn der aktuelle Zeichensatz ASCII ist. Wenn in einem bestimmten Ausdruck eine Funktion mit Zeichen- oder Zeichenkettenliteralen im ASCII-Zeichensatz arbeitet und Sie ein Nicht-ASCII-Zeichen in das Literal aufnehmen, wird ein Fehler zurückgegeben.
Hinweis:
Die Zeichenkettenliterale in fortgeschrittenen politischen Ausdrücken sind jetzt genauso lang wie der politische Ausdruck. Der Ausdruck darf 1499 Byte oder 8191 Byte lang sein.
Werte im Hexadezimal- und Oktalformat
Bei der Konfiguration eines Ausdrucks können Sie Werte im Oktal- und Hexadezimalformat eingeben. Jedes Hexadezimal- oder Oktalbyte wird jedoch als UTF-8-Byte betrachtet. Ungültige UTF-8-Bytes führen zu Fehlern, unabhängig davon, ob der Wert manuell eingegeben oder aus der Zwischenablage eingefügt wurde. Beispielsweise ist „\ xce\ x20” ein ungültiges UTF-8-Zeichen, da auf „c8” nicht „20” folgen kann (auf jedes Byte in einer Mehrbyte-UTF-8-Zeichenfolge muss das High-Bit gesetzt sein). Ein weiteres Beispiel für ein ungültiges UTF-8-Zeichen ist „\ xce\ xa9“, da die Hexadezimalzeichen durch ein Leerzeichen getrennt sind.
Funktionen, die UTF-8-Zeichenketten zurückgeben
Nur die Funktionen text>.XPATH
und <text>.XPATH_JSON
geben immer UTF-8-Zeichenketten zurück. Die folgenden MYSQL-Routinen bestimmen zur Laufzeit, welcher Zeichensatz zurückgegeben wird, abhängig von den Daten im Protokoll:
MYSQL_CLIENT_T.USER
MYSQL_CLIENT_T.DATABASE
MYSQL_REQ_QUERY_T.COMMAND
MYSQL_REQ_QUERY_T.TEXT
MYSQL_REQ_QUERY_T.TEXT(<unsigned int>)
MYSQL_RES_ERROR_T.SQLSTATE
MYSQL_RES_ERROR_T.MESSAGE
MYSQL_RES_FIELD_T.CATALOG
MYSQL_RES_FIELD_T.DB
MYSQL_RES_FIELD_T.TABLE
MSQL_RES_FIELD_T.ORIGINAL_TABLE
MYSQL_RES_FIELD_T.NAME
MYSQL_RES_FIELD_T.ORIGINAL_NAME
MYSQL_RES_OK_T.MESSAGE
MYSQL_RES_ROW_T.TEXT_ELEM(<unsigned int>)
Terminalverbindungseinstellungen für UTF-8
Wenn Sie eine Verbindung zur NetScaler-Appliance mithilfe einer Terminalverbindung einrichten (z. B. mithilfe von PuTTY), müssen Sie den Zeichensatz für die Übertragung von Daten auf UTF-8 festlegen.
Minimale und maximale Funktionen in einer fortschrittlichen politischen Formulierung
Die erweiterten Richtlinienausdrücke unterstützen die folgenden Mindest- und Maximalfunktionen.
-
(<expression1>.max(<expression2>)
- gibt das Maximum der beiden Werte zurück. -
(<expression1>.min(<expression2>)
- gibt das Minimum der beiden Werte zurück.
Teilen
Teilen
In diesem Artikel
- Zusammengesetzte Ausdrücke mit unterschiedlichen Zeichensätzen
- Geben Sie den Zeichensatz auf der Grundlage des Zeichensatzes des Datenverkehrs an
- Zeichen- und Zeichenkettenliterale in Ausdrücken
- Werte im Hexadezimal- und Oktalformat
- Funktionen, die UTF-8-Zeichenketten zurückgeben
- Terminalverbindungseinstellungen für UTF-8
- Minimale und maximale Funktionen in einer fortschrittlichen politischen Formulierung
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.