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'