Headers
Desabilitar o Auditor XSS
XSS es la abreviatura de Cross-Site Scripting, que es un ataque que consiste en enviar HTML con JavaScript malicioso a un sitio web.
Es un ataque de seguridad que consiste en enviar HTML malicioso a un sitio web. Si el sitio web muestra este HTML con JavaScript sin filtrar el código JavaScript malicioso, las cookies enviadas por el sitio web pueden ser robadas y enviadas a un sitio web atacante, para que pueda usarlo para falsificar sesiones de usuario y acceder a la cuenta del sitio web. usuario sin permisos.
Strict-Transport-Security
HSTS obliga a los navegadores a usar HTTPS en el dominio donde está habilitado, en lugar de usar HTTP.
Cuando está habilitado, el valor predeterminado es “max-age=31536000”.
La política HSTS está establecida por un año (31536000 segundos). Este período especifica la hora en que el navegador accederá al servidor a través de HTTP.
X-Frame-Options
El encabezado de respuesta HTTP X-Frame-Options se puede utilizar para indicar si el navegador debe representar la página en un formato <frame>
, <iframe>
, <embed>
o <object>
.
Este encabezado proporciona protección contra el secuestro de clics, conocido como “deslizar el dedo”; esta vulnerabilidad puede robar información y datos relevantes del usuario.
X-Frame-Options no permite la representación de una página en un marco, lo que garantiza que el contenido de su página no esté incrustado en otros sitios.
- SAMEORIGIN: La directiva SAMEORIGIN permite que la página se cargue en un marco desde la misma fuente que la propia página. Esta opción debe usarse para que la aplicación con protección contra clickjacking pueda usarse en la aplicación de menú.
- DENY: Esta directiva deshabilita completamente la carga de páginas en un marco.
Si no se selecciona ninguna opción, la aplicación se puede utilizar en cualquier momento
<frame>
,<iframe>
,<embed>
o<object>
, permitiendo que la aplicación se incorpore a otro sitio web.
X-Content-Type-Options
O X-Content-Type-Options se utiliza para proteger contra vulnerabilidades de detección MIME. Con esta opción habilitada, evita que los navegadores interpreten el contenido de la página (sniffing) y ejecuten los datos como código/etiqueta. Estas vulnerabilidades pueden ocurrir cuando se carga un archivo de texto con un código javascript y el navegador lee el contenido que está en el archivo y lo ejecuta, aunque sea solo texto y no parte del código.
Con esto habilitado, el encabezado HTTP X-Content-Type-Options se define, de forma predeterminada, como “sin detección”.
Referrer-Policy
no-referrer.
El encabezado Referer se omitirá por completo. No se enviará información de referencia con las solicitudes..
no-referrer-when-downgrade.
Este es el comportamiento predeterminado cuando no se especifica ninguna política o si el valor proporcionado no es válido.
origin.
Envíe únicamente el origen del documento como referencia. Por ejemplo, un documento en https://example.com/page.html enviará la referencia https://example.com/.
origin-when-cross-origin.
Envía el origen, la ruta y la cadena de consulta cuando se realiza una solicitud del mismo origen, pero solo envía el origen del documento en otros casos.
same-origin.
La referencia se enviará a fuentes en el mismo sitio, pero las solicitudes entre fuentes no enviarán información de referencia.
strict-origin.
Solo envíe la fuente del documento como referencia cuando el nivel del protocolo de seguridad siga siendo el mismo (HTTPS → HTTPS), pero no lo envíe a un destinatario menos seguro (HTTPS → HTTP).
strict-origin-when-cross-origin.
Envía la fuente, la ruta y la cadena de consulta cuando se realiza una solicitud desde la misma fuente, solo envía la fuente cuando el nivel del protocolo de seguridad sigue siendo el mismo durante una solicitud entre fuentes (HTTPS → HTTPS) y no envía ningún encabezado a los destinatarios menos seguro (HTTPS → HTTP)
unsafe-url.
Envía la fuente, la ruta y la cadena de consultas al realizar cualquier solicitud, independientemente de la seguridad.
Feature-Policy
El valor de este encabezado es una política o un conjunto de políticas que desea que el navegador respete para una fuente en particular..
La lista blanca de origen puede adoptar varios valores diferentes:
*:
La función está permitida en contextos de navegación de nivel superior y contextos de navegación anidados (iframes).'self':
La función está permitida en contextos de navegación de nivel superior y contextos de navegación anidados de la misma fuente. No está permitido en documentos de origen cruzado en contextos de navegación anidados.'none':
La función no está permitida en contextos de navegación de nivel superior y no está permitida en contextos de navegación anidados.<origin(s)>:
fuentes específicas para las que habilitar la política (por ejemplo, https://example.com).
Ejemplo 1: uso de una sola política Supongamos que desea evitar que todo el contenido utilice la API de geolocalización en su sitio. Puede hacer esto enviando una lista blanca restringida ‘ninguno’ al recurso de geolocalización:
Feature-Policy: geolocalización 'none'
Ejemplo 2: uso de más de una directiva Las funciones de una política están separadas por punto y coma.
Feature-Policy: unsized-media 'none'; geolocalización 'self' https://example.com; camera*;
Directivas
acelerómetro
Controla si el documento actual puede recopilar información sobre la aceleración del dispositivo a través de la interfaz del acelerómetro.
sensor de luz ambiental
Controla si el documento actual puede recopilar información sobre la cantidad de luz en el entorno alrededor del dispositivo a través de la interfaz AmbientLightSensor.
auto-reproducción
Controla si el documento actual puede reproducir los medios solicitados automáticamente a través de la interfaz HTMLMediaElement. Cuando esta política está deshabilitada y no hay acción del usuario, la Promesa devuelta por HTMLMediaElement.play () la rechazará con una DOMException. Se ignorará el atributo de reproducción automática en los elementos <audio> '' y
batería
Controla si se permite el uso de la API de estado de la batería. Cuando esta política está deshabilitada, la promesa devuelta por Navigator.getBattery () la rechazará con una excepción DOMException NotAllowedError.
camara
Controla si el documento actual puede usar entradas de dispositivos de video. Cuando esta política está deshabilitada, la promesa devuelta por getUserMedia () la rechazará con una excepción DOMException NotAllowedError.
captura de pantalla
Controla si el documento actual puede utilizar el método getDisplayMedia () para capturar el contenido de la pantalla. Cuando esta política está deshabilitada, la Promesa devuelta por getDisplayMedia () la rechazará con NotAllowedError si no se obtiene el permiso para capturar el contenido del ternero.
dominio-documento
Controle si el documento actual puede colocar document.domain. Cuando esta política está deshabilitada, los intentos de colocar document.domain fallarán y provocará que se lance una SecurityError DOMException.
medios-cifrados
Controla si el documento actual puede utilizar la API de extensiones de medios cifrados (EME). Cuando esta política está deshabilitada, la Promesa devuelta por Navigator.requestMediaKeySystemAccess () la rechazará con una DOMException.
ejecución-mientras-no-renderizado
Controla si las tareas deben realizarse en marcos mientras no están renderizados (por ejemplo, si un marco está oculto o se muestra: ninguno).
ejecución-mientras-fuera-de-viewport
Controla si las tareas deben realizarse en marcos mientras están fuera de la ventana de visualización visible.
pantalla completa
Controla si el documento actual puede utilizar Element.requestFullScreen (). Cuando esta política está deshabilitada, la Promesa devuelta la rechaza con una excepción DOMException TypeError.
geolocalización
Controla si el documento actual puede utilizar la interfaz de geolocalización. Cuando la política está deshabilitada, las llamadas a getCurrentPosition () y watchPosition () harán que se invoquen devoluciones de llamada de función con un PositionError de PERMISSION_DENIED.
giroscopio
Controla si el documento actual puede recopilar información sobre la orientación del dispositivo a través de la interfaz del giroscopio.
animaciones de diseño
Controla si el documento actual puede mostrar animaciones de diseño.
formatos de imagen heredados
Controla si el documento actual puede mostrar imágenes en formatos heredados.
magnetómetro
Controla si el documento actual puede recopilar información sobre la orientación del dispositivo a través de la interfaz del magnetómetro.
micrófono
Controla si el documento actual puede utilizar entradas de dispositivos de audio. Cuando esta política está deshabilitada, la Promesa devuelta por MediaDevices.getUserMedia () la rechazará con un NotAllowedError.
midi
Controla si el documento actual puede utilizar la API Web MIDI. Cuando esta política está deshabilitada, la Promesa devuelta por Navigator.requestMIDIAccess () la rechazará con una DOMException.
anulación de navegación
Controla la disponibilidad de mecanismos que permiten al autor de la página tomar control sobre el comportamiento de la navegación espacial o cancelarla por completo.
imágenes de gran tamaño
Controla si el documento actual puede descargar y mostrar imágenes grandes.
pago
Controla si el documento actual permite el uso de la API de solicitud de pago. Cuando esta política está deshabilitada, el constructor PaymentRequest () lanzará una SecurityError DOMException.
imagen en imagen
Controla si el documento actual permite la reproducción de un video en el modo Picture-in-Picture a través de la API correspondiente.
publickey-credentials-get
Controla si el documento actual puede utilizar la API de autenticación web para recuperar credenciales de clave pública ya almacenadas, es decir, a través de navigator.credentials.get ({publicKey: …, …}).
sync-xhr
Controla si el documento actual puede realizar solicitudes XMLHttpRequest sincrónicas.
usb
Controla si el documento actual puede utilizar la API WebUSB.
vr
Controla si el documento actual puede utilizar la API de WebVR. Cuando esta política está deshabilitada, la Promesa devuelta por Navigator.getVRDisplays () la rechazará con una DOMException. Tenga en cuenta que el estándar WebVR está en proceso de ser reemplazado por WebXR.
wake-lock
Controla si el documento actual puede utilizar la API de Wake Lock para indicar que el dispositivo no debe entrar en modo de ahorro de energía.
screen-wake-lock
Controla si el documento actual puede utilizar la API de bloqueo de activación de pantalla para indicar si el dispositivo debe oscurecer la pantalla o no.
xr-spatial-tracking
Controla si el documento actual puede utilizar la API del dispositivo WebXR para interactuar con la sesión WebXR.
Content-Security-Policy
Content-Security-Policy es el nombre de un encabezado de respuesta HTTP que utilizan los navegadores modernos para aumentar la seguridad del documento (o página web).
El encabezado Content-Security-Policy le permite restringir recursos como JavaScript, CSS o casi cualquier cosa que cargue el navegador.
Directivas
default-src
La directiva default-src define la política estándar para obtener características como JavaScript, imágenes, CSS, fuentes, solicitudes AJAX, marcos, HTML5 Media. No todas las directivas vuelven a default-src. Consulte la Referencia de la lista de fuentes para conocer los valores posibles.
Ejemplo de política DEFAULT-SRC
default-src 'self' cdn.example.com;
script-src
Define fuentes JavaScript válidas.
Ejemplo de Política SCRIPT-SRC
script-src 'self' js.example.com;
style-src
Define fuentes válidas para hojas de estilo o CSS.
EJEMPLO DE POLÍTICA STYLE-SRC__
style-src 'self' css.example.com;
img-src
Define fuentes de imágenes válidas.
Ejemplo de Política IMG-SRC
img-src 'self' img.example.com;
connect-src
Se aplica a XMLHttpRequest (AJAX), WebSocket, fetch (), `` ‘’ ‘o EventSource. Si no está permitido, el navegador emula un código de estado HTTP 400.
Ejemplo de Política CONNECT-SRC
connect-src 'self';
font-src
Define fuentes válidas para recursos de fuentes (cargadas a través de @ font-face).
Ejemplo de Política FONT-SRC
font-src font.example.com;
object-src
Define fuentes de plug-ins válidas, por ejemplo, `<objeto>` `,`
`o
<applet>
`..
Ejemplo de Política OBJECT-SRC
object-src 'self';
media-src
Define fuentes de audio y video válidas, por ejemplo, elementos <audio>
, HTML5,
Ejemplo de Política MEDIA-SRC
media-src media.example.com;
frame-src
Define fuentes válidas para cargar marcos. En CSP, el nivel 2 frame-src ha quedado obsoleto en favor de child-srcdirective. CSP Nivel 3, no se ha reemplazadoframe-src y continuará posponiendo child-src si no está presente.
Ejemplo FRAME-SRC
frame-src 'self';
sandbox
Habilita una caja de arena para el recurso solicitado similar al atributo de caja de arena de iframe. El sandbox aplica una política del mismo origen, evita ventanas emergentes, complementos y bloquea la ejecución de scripts. Puede mantener el valor de la zona de pruebas vacío para mantener todas las restricciones en su lugar, o agregar valores: allow-forms allow-same-origin allow-scripts allow-popups, allow-modals, allow-Orientation-lock, allow-pointer-lock, allow-presentation, allow-popups-to-escape-sandbox, eallow-top-navigation
Ejemplo de política de SANDBOX
sandbox allow-forms allow-scripts;
report-uri
Indica al navegador que envíe informes de fallos de políticas a este URI. También puede utilizar Content-Security-Policy-Report-Only como el nombre del encabezado HTTP para indicarle al navegador que envíe informes únicamente (no bloquea nada). Esta directiva se suspendió en el nivel 3 de CSP a favor de la directiva de informe.
Ejemplo REPORT-URI
report-uri /some-report-uri;
child-src
Define fuentes válidas para trabajadores web y contextos de navegación anidados cargados con elementos como <frame> '' y
<iframe> ‘’
Ejemplo de Política child-SRC
child-src 'self'
form-action
Define fuentes válidas que se pueden utilizar como una acción HTML `<form>`
.
Ejemplo de política de acción de formulario
form-action 'self';
frame-ancestors
Define fuentes válidas para incrustar el recurso usando `<frame> <iframe> <object> <embed> <applet>`
. Establecer esta directiva en ‘none’ debería ser aproximadamente equivalente a X-Frame-Options: DENY
FRAME-ANCESTORS__ EJEMPLO DE POLÍTICA
marco-ancestros ‘ninguno’;
plugin-types
Define tipos MIME válidos para complementos llamados a través de <objeto>
y <embed>
. Para cargar uno,
` <applet> ‘’ debe especificar application / x-java-applet.
Ejemplo de Política de TIPOS de PLUG-IN
plugin-types application/pdf;
base-uri
Define un conjunto de URL permitidas que se pueden usar en el atributo de una etiqueta base HTML.
Ejemplo de Política de URI-BASE
base-uri 'self';
report-to
Define un nombre de grupo de informes definido por un encabezado de informe de respuesta HTTP. Consulte la API de informes para obtener más información.
Ejemplo de informe para política
report-to groupName;
worker-src
Restringe las URL que se pueden cargar como Worker, SharedWorker o ServiceWorker.
Ejemplo de Política WORKER-SRC
worker-src 'none';
manifest-src
Restringe las URL donde se pueden cargar los manifiestos de la aplicación..
Ejemplo de Política MANIFEST-SRC
manifest-src 'none';
prefetch-src
Define fuentes válidas para la búsqueda previa y la reproducción previa de solicitudes, por ejemplo, a través de la etiqueta de enlace con rel = “prefetch” o rel = “prerender”:
Ejemplo de Política PREFETCH-SRC
prefetch-src 'none'
navigate-to
Restringe las URL a las que puede navegar el documento por cualquier medio. Por ejemplo, cuando se hace clic en un enlace, se envía un formulario o se llama a window.location. Si form-action está presente, esta directiva se ignorará para enviar formularios. Estado de implementación
Ejemplo de política de NAVEGACIÓN
navigate-to example.com