Una regla de Request Control consiste en Patrón, Tipos y Acción.
Las peticiones que coinciden con un patrón y los tipos de una regla activa serán interceptados tomando la acción de la regla.
El patrón se compone de Esquema, Servidor y Ruta. La regla puede incluir de uno a muchos patrones.
Los esquemas soportados en los patrones son http
y https
.
http
| Satisface un esquema http. |
https
| Satisface un esquema https. |
http/https
| Satisface esquemas http y https. |
El servidor puede coincidir con el de la URL de la petición de las siguentes maneras:
www.ejemplo.com
| Satisface un servidor completo | |
*.ejemplo.com
| Satisface el servidor dado y cualquiera de sus subdominios. | Satisfará cualquier subdominio de, p.e., ejemplo.com www.ejemplo.com , bien.ejemplo.com |
www.ejemplo.*
| Satisface el servidor y todos los dominios de primer nivel (se puede combinar con la restricción de subdominio) | Escriba los dominios de primer nivel en la lista de dominios de primer nivel (p.e. com, org). |
*
| Satisface cualquier servidor. |
La ruta en el patrón subsecuentemente puede contener cualquier combinación del comodín "*" y cualquiera de los caracteres que están permitidos en la ruta de la URL. El comodín "*" satisface cualquier porción de la ruta, y puede aparecer más de una vez.
Debajo tiene ejemplos para usar ruta en los patrones.
*
| Satisface cualquier ruta. |
ruta/a/b/
| Satisface la ruta exacta "ruta/a/b/". |
*b*
| Satisface cualquier ruta que contenga un componente "b" en en alguna posición intermedia. |
Satisface una ruta vacía. |
A list of patterns that request URL must or must not contain. Include and exclude pattern can be defined as a string with support for wildcards "?" and "*" (where "?" matches any single character and "*" matches zero or more characters), or as a regular expression pattern /regexp/
.
Include and exclude pattern matching is case insensitive as opposed to Host and Path which are case sensitive.
Below is examples of using includes and excludes patterns:
login
| Match urls containing "login". |
log?n
| Matches for example urls containing "login" and "logon". |
a*b
| Match urls where "a" is followed by "b" |
/[?&]a=\d+(&|$)/
| Match urls containing parameter "a" with digits as value. |
Un tipo indica el recurso solicitado. Una regla se puede aplicar de uno a muchos tipos, o a cualquier tipo. Todos los tipos posibles están listados debajo.
Tipo | Detalles |
---|---|
Document | Indica un documento DOM en el nivel superior que es descargado directamente dentro de una pestaña del navegador (marco principal). |
Sub document | Indica un documento DOM que es descargado dentro de otro documento DOM (sub marco). |
Stylesheet | Indica una hoja de estilo (por ejemplo, elementos <style>). |
Script | Indica un script ejecutable (como JavaScript). |
Image | Indica una imagen (por ejemplo, elementos <img>). |
Object | Indica un objeto genérico. |
Plugin | Indica una petición realizada por un plugin (object_subrequest). |
XMLHttpRequest | Indica una petición HTTP de XML. (XMLHttpRequest) |
XSLT | Indica una transformación de hoja de estilo |
Ping | Indica un ping inducido al pulsar sobre un elemento <a> que usa el atributo ping. Sólo en uso si browser.send_pings está activado (predeterminado: falso). |
Beacon | Indica una petición Beacon (de un elemento baliza). |
XML DTD | Indica una DTD (definición de tipo de documento) cargada por un documento XML. |
Font | Indica una fuente cargada mediante una regla @font-face. |
Media | Indica la carga de un vídeo o audio. |
WebSocket | Indica la carga de un WebSocket. |
CSP Report | Indica un informe Content Security Policy (política de seguridad de contenidos). |
Imageset | Indica una petición para cargar una <img> (con el atributo srcset) o <picture>. |
Web Manifest | Indica una petición para cargar un manifesto Web |
Other | Indica una petición que no está clasificada como perteneciente a los tipos anteriores. |
- Filtrado
Cualquier petición que satisfaga una regla de filtrado será filtrada de acuerdo a la configuración de esta regla:
- Con filtrado de redireccionamiento de URL la petición es guiada directamente a la URL de redireccionamiento contenida. - Con el recortado de parámetros de URL los parámetros de URL configurados se eliminarán de las peticiones.
- Bloqueo
Cualquier petición que satisfaga una regla de bloqueo será cancelada antes de efectuarse.
- Redireccionamiento
Cualquier petición que satisfaga una regla de redireccionamiento será redirigida a la URL de redireccionamiento configurada.
- Lista blanca
Cualquier petición que satisfaga una regla de lista blanca procederá normalmente sin que se tome ninguna acción de cualquiera de las otras reglas que también se satisfagan.
- Regla de lista blanca
- Regla de bloqueo
- Regla de redireccionamiento
- Regla de filtrado
El patrón de petición se puede establecer a un patrón global que se satisfaga con todas las URLs bajo los esquemas soportados ("http" o "https") marcando el botón Cualquier URL.
La regla de filtrado soporta el recorte de parámetro de consulta de URL. Los parámetros de consulta de URL se usan comúnmente en la monitorización de redireccionamiento como un método para analizar el origen del tráfico. Los parámetros de URL recortados se definen bien como cadenas de texto literales con soporte para comodín "*", o bien usando patrones en forma de expresiones regulares (regexp).
Debajo tiene ejemplos de patrones de recortado de parámetro.
utm_source
| Recorta cualquier parámetro "utm_source" |
utm_*
| Recorta cualquier parámetro que comience con "utm_" |
/[0-9]+/
| Recorta cualquier parámetro que contenga sólo dígitos |
Sólo mantiene los parámetros que están definidos en la lista de parámetros de recortado. Todos los demás parámetros serán eliminados.
Elimina todos los parámetros de consulta de la URL en la petición filtrada.
La regla de redireccionamiento soporta redirigir peticiones a una URL configurada manualmente. La URL de redireccionamiento puede ser parametrizada usando expansión de parámetro e instrucciones de redireccionamiento. La expansión de parámetro permite acceder a un conjunto de parámetros nominados de la URL original. Las instrucciones de redireccionamiento se pueden usar para modificar la petición inicial cambiando las partes de la URL original (ej. instruyendo a las peticiones para que se redirijan a un puerto distinto).
Ambos métodos se pueden usar juntos. Las instrucciones de redireccionamiento serán interpretadas y aplicadas a la URL de la petición primero, antes que la expansión de parámetro.
La expansión de parámetro también se puede usar dentro de una instrucción de redireccionamiento permitiendo crear instrucciones de redireccionamiento basadas en la URL de la petición original.
{parámetro}Accede a un parámetro nominado de la URL de la petición original. Los parámetros nominados disponibles están listados al final de esta sección.
La expansión de parámetro soporta los siguientes formatos de manipulación de cadena de texto:
{parámetro/patrón/remplazo}Remplaza una subcadena de texto coincidente con el patrón en el parámetro extraído. El patrón está escrito en forma de expresión regular. Está soportada una variedad de argumentos de remplazo especiales, que se describen debajo, incluyendo el referenciado a grupos/ocurrencias de la subcadena capturada en el parámetro.
$n
| Inserta el n-esimo grupo capturado contando desde 1. |
$`
| Inserta la porción de la cadena de texto que precede a la subcadena coincidente. |
$'
| Inserta la porción de la cadena de texto que sigue a la subcadena coincidente. |
$&
| Inserta la subcadena coincidente. |
$$
| Inserta un "$". |
{parámetro:compensación:tamaño}Extrae una parte del parámetro expandido. La compensación determina la posición inicial. Empieza desde 0 y puede ser un valor negativo contando desde el final de la cadena de texto.
{parameter|encodingRule}Decode or encode captured pattern.
encodeURI
| Encodes a pattern as URI. It does not encode the following characters: ":", "/", ";", and "?". |
decodeURI
| Decodes an encoded URI. |
encodeURIComponent
| Encodes a pattern as a component of URI. Encodes all special characters reserved for URI. |
decodeURIComponent
| Decodes an encoded URI component. |
encodeBase64
| Encode a pattern as Base64 string. |
decodeBase64
| Decodes an encoded Base64 string. |
{parámetro(manipulación1)|(manipulación2)|...|(manipulaciónN)}Todas las reglas de manipulación de cadena de texto pueden concatenarse usando un caracter "|" (pleca/barra vertical/tubo/pipe). La salida es el resultado de las manipulaciones de la cadena.
https://{hostname}/nueva/ruta | Usa el nombre de servidor de la petición original. |
https://{hostname/([a-z]{2}).*/$1}/nueva/ruta | Captura una parte del nombre de servidor de la petición original. |
/.co/.com}/nueva/ruta | Usa el nombre de servidor de la petición original pero manipula su longitud acortándolo en 3 por el final, y remplaza ".co" con ".com" |
[parámetro=valor]Remplaza una cierta parte de la petición original. Los parámetros nominados disponibles están listados al final de esta sección.
El valor de una instrucción de redireccionamiento se puede parametrizar usando la expansión de parámetro descrita anteriormente.
[parámetro={parámetro<manipulaciones>}]
[port=8080]
| Redirige la petición original al puerto 8080. |
[port=8080][hostname=localhost]
| Redirige la petición original al puerto 8080 de localhost. |
[port=8080][hostname=localhost][hash={pathname}]
| Redirige la petición original al puerto 8080 de localhost donde el hash es la ruta de la petición original. |
Los nombres de los parámetros soportados y sus salidas de ejemplo están listados en la tabla de debajo.
Dirección de ejemplo usada como entrada:
https://www.ejemplo.com:8080/alguna/ruta?query=valor#hash
Nombre | Salida |
---|---|
protocol (protocolo) |
https:
|
hostname (nombre del servidor) |
www.ejemplo.com
|
port (puerto) |
:8080
|
pathname (ruta) |
/alguna/ruta
|
search (búsqueda) |
?query=valor
|
hash (identificador) |
#hash
|
host (servidor) |
www.ejemplo.com:8080
|
origin (origen) |
https://www.ejemplo.com:8080
|
href (referencia html) |
https://www.ejemplo.com:8080/alguna/ruta?query=valor#hash
|
Esta página de manual está elaborada sobre el material de los siguientes documentos del wiki de MDN, y está licenciada bajo CC-BY-SA 2.5.
- Match patterns por Mozilla Contributors licenciado bajo CC-BY-SA 2.5.
- webRequest.ResourceType por Mozilla Contributors licenciado bajo CC-BY-SA 2.5.
- URL por Mozilla Contributors licenciado bajo CC-BY-SA 2.5.