Skip to content

Latest commit

 

History

History
359 lines (290 loc) · 14 KB

manual.wiki

File metadata and controls

359 lines (290 loc) · 14 KB

Table of Contents

Manual de Request Control

Regla de Request Control

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.

Patrón

El patrón se compone de Esquema, Servidor y Ruta. La regla puede incluir de uno a muchos patrones.

Esquema

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.

Servidor

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.

Ruta

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.

Includes and Excludes

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.

Tipos

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.

Acción

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.

Prioridades de las reglas

  1. Regla de lista blanca
  2. Regla de bloqueo
  3. Regla de redireccionamiento
  4. Regla de filtrado
Las reglas de lista blanca tienen la prioridad más alta y revocan todas las demás reglas. A continuación vienen las reglas de bloqueo que revocan las reglas de redireccionamiento y filtrado. Finalmente las reglas de redireccionamiento se aplicarán antes que las reglas de filtrado. Si más de una regla de redireccionamiento o filtrado satisface una petición única, todas se aplicarán de una en una.

Satisfacer con todas las URLs

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.

Recortar parámetros de 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

Opción de recortado inverso

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.

Opción recortar todos

Elimina todos los parámetros de consulta de la URL en la petición filtrada.

Redireccionamiento usando captura de patrón

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.

Expansión de parámetro

{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:

Remplazado de subcadena

{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.
$&amp; Inserta la subcadena coincidente.
$$ Inserta un "$".

Extracción de subcadena

{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.

Decoding and encoding extracted patterns

{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.

Combinar reglas de manipulación

{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.

Ejemplos

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"

Instrucción de redireccionamiento

[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>}]

Ejemplos

[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.

Lista de parámetros nominados

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.

  1. Match patterns por Mozilla Contributors licenciado bajo CC-BY-SA 2.5.
  2. webRequest.ResourceType por Mozilla Contributors licenciado bajo CC-BY-SA 2.5.
  3. URL por Mozilla Contributors licenciado bajo CC-BY-SA 2.5.