Este artículo ha sido traducido automáticamente. (Aviso legal)
Permitir caracteres especiales con su forma literal en StyleBook
En la definición de StyleBook, puede utilizar cadenas textuales cuando los caracteres especiales de una cadena tienen que adoptar su forma literal. Estas cadenas pueden contener caracteres de escape, barra invertida, comillas, paréntesis, espacios en blanco, corchetes, etc.
En StyleBooks, puede incluir expresiones de directivas de NetScaler en su forma literal mediante cadenas literales. Las expresiones de directiva suelen contener caracteres especiales. Sin cadenas literales, tiene que escapar de los caracteres especiales dividiendo cadenas en subcadenas.
Para crear una cadena literal, encapsula una cadena entre caracteres especiales de la siguiente manera:
~{string}~
Puede utilizar cadenas literales en las expresiones StyleBook.
Nota
No utilice la secuencia de caracteres} ~ en una cadena de entrada porque esta secuencia indica el final de una cadena textual.
Ejemplo:
---
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"
En este ejemplo, las default-deny-urls-regex
sustituciones tienen una expresión literal.
-
"Command_injection_attack": str("([ /=]|\\t|\\n)(ls|cat)([ ;'" + "\\\"&].*)?$")
: StyleBook lo procesa como una expresión regular. -
"Command_injection_attack2": ~{([ /=]|\t|\n)(ls|rm|cat)([ ;'\"&].*)?$}~
: StyleBook lo procesa como una expresión literal. Los caracteres especiales de esta cadena adoptan la forma literal.
Concatenar varias cadenas literales
Puede concatenar cadenas literales con las cadenas regulares o cadenas con interpolaciones. Cuando lo hace, el StyleBook omite la interpretación solo para las cadenas literales. Utilice el operador más (+) entre las cadenas para concatenar.
Ejemplo:
value: "~{"id": "}~ + %{$atom.key}% + ~{", "value": "}~ + %{$atom.value}% + ~{"}~"
En este ejemplo, %{$atom.key}%
y %{$atom.value}%
se interpretan. Y, la interpretación se omite para el resto.