Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Erlaube Sonderzeichen mit ihrer wörtlichen Form in StyleBook
In der StyleBook-Definition können Sie wörtliche Zeichenketten verwenden, wenn Sonderzeichen in einer Zeichenfolge ihre wörtliche Form annehmen müssen. Diese Zeichenfolgen können Escape-Zeichen, umgekehrte Schrägstriche, Anführungszeichen, Klammern, Leerzeichen, Klammern usw. enthalten.
In StyleBooks können Sie NetScaler Richtlinienausdrücke in ihre literale Form mithilfe von wörtlichen Zeichenfolgen einschließen. Die Richtlinienausdrücke enthalten in der Regel Sonderzeichen. Ohne wörtliche Zeichenfolgen müssen Sie Sonderzeichen umgehen, indem Sie Strings in Teilstrings zerlegen.
Um eine wörtliche Zeichenfolge zu erstellen, kapseln Sie eine Zeichenfolge wie folgt zwischen Sonderzeichen:
~{string}~
Sie können wörtliche Strings in den StyleBook-Ausdrücken verwenden.
Hinweis Verwenden Sie
nicht die Zeichenfolge} ~ in einer Eingabezeichenfolge, da diese Sequenz das Ende einer wörtlichen Zeichenfolge angibt.
Beispiel:
---
name: test-deny-url
namespace: citrix.adc.stylebooks
version: "6.2"
display-name: StyleBook for creating an AppFw profile
description: This Stylebook configures an AppFw config.
schema-version: "1.0"
import-stylebooks:
-
namespace: netscaler.nitro.config
prefix: ns
version: "13.0"
parameters:
-
name: name
type: string
required: true
substitutions:
default-deny-urls-regex:
"Command_injection_attack": str("([ /=]|\t|\n)(ls|cat)([ ;'" + "\\"&].\*)?$")
"Command_injection_attack2": ~{([ /=]|\t|\n)(ls|rm|cat)([ ;'"&].\*)?$}~
components:
-
name: appfw-profile-comp
type: ns::appfwprofile
properties:
name: $parameters.name
type: ["XML"]
components:
-
name: appfw-profile-denyurl-default-binding-subcomp-all
type: ns::appfwprofile_denyurl_binding
properties:
name: $parent.properties.name
denyurl?: $substitutions.default-deny-urls-regex["Command_injection_attack"]
state?: "ENABLED"
-
name: appfw-profile-denyurl-default-binding-subcomp-all2
type: ns::appfwprofile_denyurl_binding
properties:
name: $parent.properties.name
denyurl?: $substitutions.default-deny-urls-regex["Command_injection_attack2"]
state?: "ENABLED"
In diesem Beispiel haben die default-deny-urls-regex
Substitutionen einen wörtlichen Ausdruck.
-
"Command_injection_attack": str("([ /=]|\\t|\\n)(ls|cat)([ ;'" + "\\\"&].*)?$")
: StyleBook verarbeitet es als regulären Ausdruck. -
"Command_injection_attack2": ~{([ /=]|\t|\n)(ls|rm|cat)([ ;'\"&].*)?$}~
: StyleBook verarbeitet es als wörtlichen Ausdruck. Die Sonderzeichen in dieser Zeichenfolge haben die wörtliche Form.
Verketten Sie mehrere wörtliche Strings
Sie können wörtliche Strings mit den regulären Strings oder Strings mit Interpolationen verketten. Wenn Sie dies tun, überspringt das StyleBook die Interpretation nur für die wörtlichen Strings. Verwenden Sie den Plus-Operator (+) zwischen den Strings, um zu verketten.
Beispiel:
value: "~{"id": "}~ + %{$atom.key}% + ~{", "value": "}~ + %{$atom.value}% + ~{"}~"
In diesem Beispiel %{$atom.key}%
und %{$atom.value}%
werden interpretiert. Und die Interpretation wird für den Rest übersprungen.