Usar operadores y operandos en expresiones de directiva
Un operador es un símbolo que identifica la operación (matemática, booleana o relacional, por ejemplo) que manipula uno o más objetos u operandos. La primera sección de este tema define los operadores que puede usar y proporciona una definición. En la segunda sección se enumeran los operadores que puede usar con calificadores específicos, como método, URL y consulta.
Operadores y definiciones
En esta sección se definen los operadores que se pueden usar al crear una expresión de política y se proporciona una descripción del operador.
-
==,! =, EQ, NUEVO
Estos operadores comprueban las coincidencias exactas. Distinguen entre mayúsculas y minúsculas («cmd.exe» NO ES IGUAL a «cMd.exe»). Estos operadores son útiles para crear permisos que permitan determinadas cadenas que cumplan una sintaxis exacta, pero para excluir otras cadenas.
-
GT
Este operador se usa para comparaciones numéricas. Se usa en la longitud de las URL y las cadenas de consulta.
-
CONTIENE, NO CONTIENE
Estos operadores comprueban el calificador especificado para determinar si la cadena especificada está contenida en el calificador. Estos operadores no distinguen entre mayúsculas y minúsculas.
-
EXISTE, NO EXISTE
Estos operadores comprueban la existencia de un calificador en particular. Por ejemplo, estos operadores se pueden aplicar a los encabezados HTTP para determinar si existe un encabezado HTTP determinado o si existe la consulta URL.
-
CONTENIDOS
Este operador comprueba si el calificador existe y si tiene contenido (es decir, si existe un encabezado y tiene un valor asociado, sin importar cuál sea el valor).
Calificadores, operadores, operandos, acciones y ejemplos
En esta sección se muestran los parámetros que puede usar para los operadores y operandos. Cada elemento comienza con el calificador y, a continuación, muestra el operador y el operando asociados, describe la acción que lleva a cabo la expresión y proporciona un ejemplo.
-
Método
Operador: EQ, NEQ Operandos: Obligatorio:
- Métodos HTTP estándar
- Métodos compatibles
-
- Acciones GET, HEAD, POST, PUT, DELETE OPTIONS, TRACE, CONNECT
- verifica el método de solicitud entrante con el método configurado. Ejemplo: Método EQ GET
URL
-
Operador: EQ, NEQ Operandos: Obligatorio: URL (Formato:/[prefix] [*] [.suffix]) Acciones: verifica la URL entrante con la URL configurada. Ejemplo: URL EQ/foo*.asp URL EQ /foo * URL EQ /*.asp URL EQ /foo.asp
-
Operador: CONTAINS, NOTCONTAINS Operandos: Obligatorio: cualquier cadena (entre comillas) Acciones: verifica la URL entrante para comprobar la presencia del patrón configurado. (Incluye URL y consulta de URL). Ejemplo: URL CONTIENE ‘ZZZ’
-
URL LEN
Operador: GT Operandos: Obligatorio: Longitud (como valor entero) Acciones: Compara la longitud de la URL entrante con la longitud configurada. (Incluye URL y consulta de URL). Ejemplo: URLLEN GT 60
-
CONSULTA DE URL
Operador: CONTAINS, NOTCONTAINS Operandos: Obligatorio: cualquier cadena (entre comillas). Opcional: acciones de longitud y compensación : verifica la presencia del patrón configurado en la consulta URL entrante. Se usa de manera similar a CONTENTS. Si no se especifica ninguna opción, se utiliza la consulta URL completa después del patrón. Si las opciones están presentes, solo la longitud de la consulta después de utilizar el patrón. El desfase se utiliza para indicar desde dónde empezar la búsqueda del patrón. Ejemplo: URLQUERY CONTIENE ‘ZZZ’
-
LEN DE CONSULTA DE URL
Operador: GT Operandos: Obligatorio: Longitud (como valor entero) Acciones: compara la longitud de la consulta URL entrante con la longitud configurada. Ejemplo: URLQUERYLN GT 60
-
TOKENS DE URL
Operador: EQ, NEQ Operandos: Requerido: tokens de URL (tokens de URL admitidos =, +,%,!, &,?). Acciones: compara la URL entrante con la presencia de tokens configurados. Debe escribirse una barra invertida (\) delante del signo de interrogación. Ejemplo: URLTOKENS EQ ‘%, +, &,\? ‘
-
VERSIÓN
Operador: EQ, NEQ Operandos: Obligatorio: versiones HTTP estándar. Cadenas de versiones HTTP válidas HTTP/1.0, HTTP/1.1 Acciones: compara la versión HTTP de la solicitud entrante con la versión HTTP configurada. Ejemplo: VERSION EQ HTTP/1.1
Header
-
Operador: EXISTS, NOTEXISTS Operandos: Ninguno Acciones: examina la solicitud entrante para detectar la presencia del encabezado HTTP. Ejemplo: La cookie de encabezado EXISTE
-
- Operador: CONTAINS, NOTCONTAINS
- Operandos: Obligatorio: cualquier cadena (entre comillas).
- Opcional: acciones de longitud y compensación
- verifica la solicitud entrante para detectar la presencia de un patrón configurado en el encabezado específico. Se usa de manera similar a CONTENTS. Si no se especifica ninguna opción, se utiliza todo el valor del encabezado HTTP después del patrón. Si las opciones están presentes, solo se utiliza la longitud del encabezado después del patrón. El desfase se utiliza para indicar desde dónde empezar la búsqueda del patrón. Ejemplo: Cookie de encabezado CONTIENE “&sid”
-
Operador: CONTENTS Operandos: Opcional: longitud y compensación Acciones: utiliza el contenido del encabezado HTTP. Si no se especifica ninguna opción, se utiliza todo el valor del encabezado HTTP. Si hay opciones disponibles, solo se utiliza la longitud del encabezado empezando por el desplazamiento. Ejemplo: Header User-Agent CONTENTS
-
SOURCEIP
Operador: EQ, NEQ Operandos: Obligatorio: dirección IP Opcional: máscara de subred Acciones: verifica la dirección IP de origen de la solicitud entrante con la dirección IP configurada. Si se especifica la máscara de subred opcional, la solicitud entrante se verifica con la dirección IP y la máscara de subred configuradas. Ejemplo: Sourceip EQ 192.168.100.0 -netmask 255.255.255.0
-
DESTIP
Operador: EQ, NEQ Operandos: Obligatorio: dirección IP Opcional: máscara de subred Acciones: verifica la dirección IP de destino de la solicitud entrante con la dirección IP configurada. Si se especifica la máscara de subred opcional, la solicitud entrante se verifica con la dirección IP y la máscara de subred configuradas. Ejemplo: Sourceip EQ 192.168.100.0 -netmask 255.255.255.0
-
SOURCEPORT
Operador: EQ, NEQ Operandos: Obligatorio: número de puerto Opcional: rango de puertos Acciones: verifica el número de puerto de origen de la solicitud entrante con el número de puerto configurado. Ejemplo: SOURCEPORT EQ 10—20
-
DESTPORT
Operador: EQ, NEQ Operandos: Obligatorio: número de puerto Opcional: rango de puertos Acciones: verifica el número de puerto de destino de la solicitud entrante con el número de puerto configurado. Ejemplo: DESTPORT NEQ 80
-
CLIENT.SSL.VERSION
Operador: EQ, NEQ Operandos: Obligatorio: versión SSL Acciones: Comprueba la versión de la versión SSL o TLS utilizada en la conexión segura. Ejemplo: CLIENT.SSL.VERSION EQ SSLV3
-
CLIENT.CIPHER.TYPE
Operador: EQ, NEQ Operandos: Obligatorio: Tipo de cifrado de cliente Acciones: Comprueba el tipo de cifrado que se utiliza (exportación o no exportación). Ejemplo: CLIENT.CIPHER.TYPE EQ EXPORT
-
CLIENT.CIPHER.BITS
Operador: EQ, NEQ, GE, LE, GT, LT Operandos: Obligatorio: bits de cifrado del cliente Acciones: Comprueba la fortaleza de la clave del cifrado que se está utilizando. Ejemplo: CLIENT.CIPHER.BITS GE 40
-
CLIENT.CERT
Operador: EXISTS, NOTEXISTS Operandos: ninguno Acciones: Comprueba si el cliente envió un certificado válido durante el protocolo de enlace SSL. Ejemplo: CLIENT.CERT EXISTS
-
CLIENT.CERT.VERSION
Operador: EQ, NEQ, GE, LE, GT, LT Operandos: versión del certificado del cliente Acciones: Comprueba la versión del certificado del cliente. Ejemplo: CLIENT.CERT.VERSION EQ 2
-
CLIENT.CERT.SERIALNUMBER
Operador: EQ, NEQ Operandos: Obligatorio: número de serie del certificado de cliente Acciones: Comprueba el número de serie del certificado de cliente. El número de serie se trata como una cadena. Ejemplo: CLIENT.CERT.SER IALNUMBER EQ 2343323
-
CLIENT.CERT.SIGALGO
Operador: EQ, NEQ Operandos: Obligatorio: algoritmo de firma de certificados de cliente. Acciones: comprueba el algoritmo de firma utilizado en el certificado del cliente. Ejemplo: CLIENT.CERT.SIGALGO EQ MD5 con cifrado RSA
-
CLIENT.CERT.SUBJECT
Operador: CONTIENE, NO CONTIENE Operandos: Obligatorio: Asunto del certificado de cliente Opcional: longitud, compensación Acciones: Comprueba el campo de asunto del certificado de cliente. Ejemplo: CLIENT.CERT.SUBJECT CONTIENE CN= Access_Gateway
-
CLIENT.CERT.ISSUER
Operador: CONTIENE, NO CONTIENE Operandos: Obligatorio: emisor del certificado de cliente Opcional: longitud, compensación Acciones: Comprueba el campo emisor del certificado de cliente. Ejemplo: CLIENT.CERT.ISSUER CONTIENE O=Verisign
-
CLIENT.CERT.VALIDFROM
Operador: EQ, NEQ, GE, LE, GT, LT Operandos: Obligatorio: Fecha Acciones: Comprueba la fecha a partir de la cual el certificado de cliente es válido. Los formatos de fecha válidos son: martes, 05 de noviembre de 1994 08:12:31 GMT martes, 05-nov-94 08:12:31 GMT martes 14 de noviembre 08:12:31 1994 Ejemplo: CLIENT.CERT.VALIDFROM GE ‘Tue 14 de noviembre 08:12:31 1994’
-
CLIENT.CERT.VALIDTO
Operador: EQ, NEQ, GE, LE, GT, LT Operandos: Obligatorio: Fecha Acciones: Comprueba la fecha hasta la cual el certificado de cliente es válido. Los formatos de fecha válidos son: martes, 05 de noviembre de 1994 08:12:31 GMT martes, 05-nov-94 08:12:31 GMT martes 14 de noviembre 08:12:31 1994 Ejemplo: CLIENT.CERT.VALIDTO GE ‘Tue 14 de noviembre 08:12:31 1994’