Traducción en curso

Política de Seguridad del Contenido o ( CSP ) - del inglés Content Security Policy - es una capa de seguridad adicional que ayuda a prevenir y mitigar algunos tipos de ataque, incluyendo Cross Site Scripting ( XSS ) y ataques de inyección de datos. Estos ataques son usados con diversos propósitos, desde robar información hasta desfiguración de sitios o distribución de malware .

CSP está diseñado para ser completamente retrocompatible (excepto la versión 2 de CSP, donde hay algunas menciones explícitas de inconsistencia en la retrocompatibilidad; más detalles aquí sección 1.1).  Los navegadores que no lo soportan siguen funcionando con los servidores que lo implementan y viceversa: los navegadores que no soportan CSP simplemente lo ignoran, funcionando como siempre y delegando a la política mismo-origen para contenido web. Si el sitio web no ofrece la cabecera CSP, los navegadores igualmente usan la política estándar mismo-origen.

Para habilitar CSP, necesitas configurar tu servidor web para que devuelva la cabecera HTTP Content-Security-Policy (en ocasiones verás menciones de la cabecera X-Content-Security-Policy, pero se trata de una versión antigua y no necesitas especificarla más).

Alternativamente, el elemento <meta> puede ser usado para configurar una política, por ejemplo: <meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; child-src 'none';">

Amenazas

Mitigando el cross site scripting

El principal objetivo del CSP es mitigar y reportar ataques XSS. Los ataques XSS se aprovechan de la confianza del navegador en el contenido que recibe del servidor. El navegador de la víctima ejecutará los scripts maliciosos porque confía en la fuente del contenido, aun cuando dicho contenido no provenga  de donde se supone.

CSP hace posible que los  administradores de servidores reduzcan o eliminen las posibilidades de ocurrencia de XSS mediante la especificación de dominios que el navegador considerará como fuentes válidas de scripts ejecutables. Un navegador compatible con  CSP solo ejecutará scripts de los archivos fuentes especificados en esa lista blanca de dominios, igonarando completamente cualquier otro script (incluyendo los scripts inline y los atributos de HTML de manejo de eventos).

Como medida extrema de protección, los sitios que nunca requieran ejecutar scripts, pueden optar por rechazar globalmente la ejecución de scripts.

Mitigando los ataques de análisis de paquetes (packet sniffing attacks)

Además de restringir los dominios desde los cuales se puede cargar el contenido, el servidor puede especificar qué protocolos se pueden usar; por ejemplo (e idealmente, desde un punto de vista de seguridad), un servidor puede especificar que todo el contenido debe cargarse utilizando HTTPS. Una estrategia completa de seguridad en la transmisión de datos incluye no solo aplicar HTTPS para la transferencia de datos, sino también marcar todas las cookies con el indicador de seguridad y proporcionar redirecciones automáticas desde las páginas HTTP a sus homólogas HTTPS. Los sitios también pueden usar la cabecera HTTP      Strict-Transport-Security para garantizar que los navegadores se conecten a ellos solo a través de un canal cifrado.

Utilizando CSP

La configuración de la Política de Seguridad del Contenido (CSP), consiste en agregar a una página web la cabecera HTTP Content-Security-Policy, y darle valores para controlar los recursos que el agente de usuario puede cargar para esa página. Por ejemplo, una página que carga y muestra imágenes podría permitir imágenes desde cualquier lugar, pero pudiera restringir una acción de formulario a una ruta específica. Una Política de Seguridad de Contenido adecuadamente diseñada ayuda a proteger una página contra un ataque de scripts entre sitios. Este artículo explica cómo construir dichas cabeceras correctamente y proporciona ejemplos.

Especificando una política

Para especificar una política, se puede utilizar la cabecera HTTP      Content-Security-Policy  de la siguiente manera:

Content-Security-Policy: política

La política es una cadena de caracteres que contiene las directivas que describen una determinada Política de Seguridad de Contenido.

Describiendo una política

Una política se describe utilizando una serie de directivas de políticas, cada una de las cuales describe la política para un determinado tipo de recurso o área de política. Una política debe incluir una directiva de políticas default-src, que es una alternativa para otros tipos de recursos cuando no tienen políticas propias (para obtener una lista completa, consulte la descripción de la directiva default-src ). Una política debe incluir una directiva   default-src o script-src para evitar la ejecución de scripts en línea, así como bloquear el uso de eval(). Una política debe incluir una directiva default-src o style-src para restringir la aplicación de estilos en línea desde un elemento <style>} o un atributo style.

Ejemplos: Casos de usos frecuentes

Esta sección proporciona ejemplos de algunos escenarios frecuentes de políticas de seguridad.

Ejemplo 1

Un administrador del sitio web desea que todo el contenido provenga del mismo origen que el del sitio (esto excluye subdominios).

Content-Security-Policy: default-src 'self'

Ejemplo 2

El administrador de un sitio web desea permitir el contenido de un dominio de confianza y todos sus subdominios (no tiene que ser el mismo dominio en el que está configurado el CSP).

Content-Security-Policy: default-src 'self' *.trusted.com

Ejemplo 3

El administrador de un sitio web desea permitir que los usuarios de una aplicación web incluyan imágenes de cualquier origen en su propio contenido, pero restringen los medios de audio o video a proveedores de confianza, y todas las secuencias de comandos solo a un servidor específico que aloja un código de confianza.

Content-Security-Policy: default-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com

Aquí, de forma predeterminada, el contenido solo se permite desde el origen del documento, con las siguientes excepciones:

  • Las imágenes pueden cargarse desde cualquier lugar (tenga en cuenta el comodín "*").
  • Los archivos de medios solo están permitidos desde media1.com y media2.com (y no desde los subdominios de esos sitios).    
  • El script ejecutable solo está permitido desde userscripts.example.com.

Ejemplo 4

En administrador de un sitio web de banca en línea quiere asegurarse de que todo su contenido se cargue mediante SSL, para evitar que los atacantes puedan espiar las solicitudes.

Content-Security-Policy: default-src https://onlinebanking.jumbobank.com

El servidor solo permite el acceso a documentos que se cargan específicamente a través de HTTPS a través del único origen onlinebanking.jumbobank.com.

Ejemplo 5

El administrador de un sitio de correo web desea permitir HTML en el correo electrónico, así como imágenes cargadas desde cualquier lugar, pero no JavaScript u otro contenido potencialmente peligroso.

Content-Security-Policy: default-src 'self' *.mailsite.com; img-src *

Tenga en cuenta que este ejemplo no especifica un script-src ; con el CSP de ejemplo, este sitio utiliza la configuración especificada por la directiva default-src , lo que significa que los scripts solo se pueden cargar desde el servidor de origen.

Comprobando una política

Para facilitar la implementación, CSP se puede implementar en modo de solo informe. La política no se aplica, pero cualquier violación se informa a un URI proporcionado. Además, se puede usar una cabecera de solo informe para probar una futura revisión de una política sin implementarla realmente.

Se puede usar la cabecera HTTP Content-Security-Policy-Report-Only para especificar una política de la siguiente manera:

Content-Security-Policy-Report-Only: policy 

Si la cabecera Content-Security-Policy-Report-Only y la cabecera Content-Security-Policy están presentes en la misma respuesta, ambas políticas se cumplen. La política especificada en la cabecera Content-Security-Policy se aplica, mientras que la política Content-Security-Policy-Report-Only genera informes pero no se aplica.

Habilitación de informes

Por defecto, los informes de violación no son enviados. Para habilitar los informes de violación, debe especificar la directiva de políticas report-uri , proporcionando al menos un URI al que entregar los informes:

Content-Security-Policy: default-src 'self'; report-uri http://reportcollector.example.com/collector.cgi

Luego se debe configurar el servidor para recibir los informes; se pueden almacenar o procesar de la manera que considere apropiada.

Sintáxis del informe de violación

El informe es un objeto JSON que contiene los datos siguientes:

blocked-uri
El URI del recurso bloqueado por la Política de Seguridad de Contenido. Si el URI bloqueado es de un origen diferente al del document-uri, el URI bloqueado se trunca para contener solo el esquema, el host y el puerto.
disposition
Toma el valor "enforce" o "reporting" dependiendo de si se utiliza la cabecera Content-Security-Policy-Report-Only o Content-Security-Policy.
document-uri
El URI del documento donde ocurrió la violación.
effective-directive
La directiva cuya aplicación causó la violación.
original-policy
La política original especificada por la cabecera HTTP Content-Security-Policy.
referrer
El referente del documento en el que ocurrió la violación.
script-sample
Los primeros 40 caracteres del script inline, el controlador de eventos o el estilo que causó la violación.
status-code
El código de estado HTTP del recurso en el que se creó una instancia del objeto global.
violated-directive
El nombre de la sección de política que fue violada.

Ejemplo de informe de violación

Consideremos una página ubicada en http://example.com/signup.html que tiene las siguiente política: rechazar todo, excepto las hojas de estilo provenientes de cdn.example.com.
Content-Security-Policy: default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports
El código HTML de signup.html es el siguiente:
<!DOCTYPE html>
<html>
  <head>
    <title>Sign Up</title>
    <link rel="stylesheet" href="css/style.css">
  </head>
  <body>
    ... Content ...
  </body>
</html>
¿Puedes ver el error? Las hojas de estilo solo se pueden cargar desde cdn.example.com, pero el sitio web intenta cargar una desde su propio origen (http://example.com). Un navegador capaz de aplicar el CSP enviará el siguiente informe de violación mediante una solicitud POST a http://example.com/_/csp-reports, cuando se visite el documento:
{
  "csp-report": {
    "document-uri": "http://example.com/signup.html",
    "referrer": "",
    "blocked-uri": "http://example.com/css/style.css",
    "violated-directive": "style-src cdn.example.com",
    "original-policy": "default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports"
  }
}

Como se puede ver, el informe incluye la ruta completa al recurso infractor en blocked-uri. Este no es siempre el caso. Por ejemplo, cuando signup.html intente cargar el CSS desde http://anothercdn.example.com/stylesheet.css, el navegador no incluiría la ruta completa, sino solo el origen (http://anothercdn.example.com ). La especificación CSP da una explicación de este extraño comportamiento. En resumen, esto se hace para evitar la pérdida de información confidencial sobre recursos de origen cruzado.

Compatibilidad del navegador

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Content-Security-PolicyChrome Soporte completo 25
Soporte completo 25
Soporte completo 14
Nombre alternativo
Nombre alternativo Usa un nombre no estandar : X-Webkit-CSP
Edge Soporte completo 14Firefox Soporte completo 23
Soporte completo 23
Soporte completo 4
Nombre alternativo
Nombre alternativo Usa un nombre no estandar : X-Content-Security-Policy
IE Soporte completo 10
Notas Nombre alternativo
Soporte completo 10
Notas Nombre alternativo
Notas Only supporting 'sandbox' directive.
Nombre alternativo Usa un nombre no estandar : X-Content-Security-Policy
Opera Soporte completo 15Safari Soporte completo 7
Soporte completo 7
Soporte completo 6
Nombre alternativo
Nombre alternativo Usa un nombre no estandar : X-Webkit-CSP
WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 23Opera Android ? Safari iOS Soporte completo 7.1
Soporte completo 7.1
Soporte completo 5.1
Notas
Notas X-Webkit-CSP
Samsung Internet Android Soporte completo Si
base-uriChrome Soporte completo 40Edge Sin soporte NoFirefox Soporte completo 35IE Sin soporte NoOpera Soporte completo 27Safari Soporte completo 10WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Sin soporte NoFirefox Android Soporte completo 35Opera Android ? Safari iOS Soporte completo 9.3Samsung Internet Android Soporte completo Si
block-all-mixed-contentChrome Soporte completo SiEdge ? Firefox Soporte completo 48IE Sin soporte NoOpera Soporte completo SiSafari ? WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 48Opera Android ? Safari iOS ? Samsung Internet Android Soporte completo Si
child-src
Deprecated
Chrome Soporte completo 40Edge Soporte completo 15Firefox Soporte completo 45IE Sin soporte NoOpera Soporte completo 27Safari Soporte completo 10WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Sin soporte NoFirefox Android Soporte completo 45Opera Android ? Safari iOS Soporte completo 9.3Samsung Internet Android Soporte completo Si
connect-srcChrome Soporte completo 25Edge Soporte completo 14Firefox Soporte completo 23
Notas
Soporte completo 23
Notas
Notas Prior to Firefox 50, ping attributes of <a> elements weren't covered by connect-src.
IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 7WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 23Opera Android ? Safari iOS Soporte completo 7.1Samsung Internet Android Soporte completo Si
default-srcChrome Soporte completo 25Edge Soporte completo 14Firefox Soporte completo 23IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 7WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 23Opera Android ? Safari iOS Soporte completo 7.1Samsung Internet Android Soporte completo Si
disown-opener
Experimental
Chrome Sin soporte NoEdge Sin soporte NoFirefox Sin soporte NoIE Sin soporte NoOpera Sin soporte NoSafari Sin soporte NoWebView Android Sin soporte NoChrome Android Sin soporte NoEdge Mobile Sin soporte NoFirefox Android Sin soporte NoOpera Android Sin soporte NoSafari iOS Sin soporte NoSamsung Internet Android Sin soporte No
font-srcChrome Soporte completo 25Edge Soporte completo 14Firefox Soporte completo 23IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 7WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 23Opera Android ? Safari iOS Soporte completo 7.1Samsung Internet Android Soporte completo Si
form-actionChrome Soporte completo 40Edge Soporte completo 15Firefox Soporte completo 36IE Sin soporte NoOpera Soporte completo 27Safari Soporte completo 10WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Sin soporte NoFirefox Android Soporte completo 36Opera Android ? Safari iOS Soporte completo 9.3Samsung Internet Android Soporte completo Si
frame-ancestorsChrome Soporte completo 40Edge Soporte completo 15Firefox Soporte completo 33
Notas
Soporte completo 33
Notas
Notas Before Firefox 58, frame-ancestors is ignored in Content-Security-Policy-Report-Only.
IE Sin soporte NoOpera Soporte completo 26Safari Soporte completo 10WebView Android ? Chrome Android Soporte completo SiEdge Mobile Sin soporte NoFirefox Android Soporte completo 33
Notas
Soporte completo 33
Notas
Notas Before Firefox for Android 58, frame-ancestors is ignored in Content-Security-Policy-Report-Only.
Opera Android ? Safari iOS Soporte completo 9.3Samsung Internet Android Soporte completo Si
frame-srcChrome Soporte completo 25Edge Soporte completo 14Firefox Soporte completo 23IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 7WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 23Opera Android ? Safari iOS Soporte completo 7.1Samsung Internet Android Soporte completo Si
img-srcChrome Soporte completo 25Edge Soporte completo 14Firefox Soporte completo 23IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 7WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 23Opera Android ? Safari iOS Soporte completo 7.1Samsung Internet Android Soporte completo Si
manifest-srcChrome Soporte completo SiEdge Sin soporte NoFirefox Soporte completo 41IE Sin soporte NoOpera Soporte completo SiSafari Sin soporte NoWebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Sin soporte NoFirefox Android Soporte completo 41Opera Android ? Safari iOS Sin soporte NoSamsung Internet Android Soporte completo Si
media-srcChrome Soporte completo 25Edge Soporte completo 14Firefox Soporte completo 23IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 7WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 23Opera Android ? Safari iOS Soporte completo 7.1Samsung Internet Android Soporte completo Si
navigate-to
Experimental
Chrome Sin soporte NoEdge Sin soporte NoFirefox Sin soporte NoIE Sin soporte NoOpera Sin soporte NoSafari Sin soporte NoWebView Android Sin soporte NoChrome Android Sin soporte NoEdge Mobile Sin soporte NoFirefox Android Sin soporte NoOpera Android Sin soporte NoSafari iOS Sin soporte NoSamsung Internet Android Sin soporte No
object-srcChrome Soporte completo 25Edge Soporte completo 14Firefox Soporte completo 23IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 7WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 23Opera Android ? Safari iOS Soporte completo 7.1Samsung Internet Android Soporte completo Si
plugin-typesChrome Soporte completo 40Edge Soporte completo 15Firefox Sin soporte No
Notas
Sin soporte No
Notas
Notas See bug 1045899.
IE Sin soporte NoOpera Soporte completo 27Safari Soporte completo 10WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Sin soporte NoFirefox Android Sin soporte NoOpera Android ? Safari iOS Soporte completo 9.3Samsung Internet Android Soporte completo Si
referrer
DeprecatedNo estándar
Chrome Sin soporte 33 — 56Edge Sin soporte NoFirefox Sin soporte 37 — 62IE Sin soporte NoOpera Sin soporte ? — 43Safari Sin soporte NoWebView Android Sin soporte 37 — 56Chrome Android Sin soporte 33 — 56Edge Mobile Sin soporte NoFirefox Android Sin soporte 37 — 62Opera Android Sin soporte ? — 43Safari iOS Sin soporte NoSamsung Internet Android Soporte completo Si
report-sample
Experimental
Chrome Soporte completo 59Edge ? Firefox ? IE ? Opera Soporte completo 46Safari ? WebView Android Soporte completo 59Chrome Android Soporte completo 59Edge Mobile ? Firefox Android ? Opera Android Soporte completo 46Safari iOS ? Samsung Internet Android Soporte completo 7.0
report-toChrome Sin soporte NoEdge Sin soporte NoFirefox Sin soporte NoIE Sin soporte NoOpera Sin soporte NoSafari Sin soporte NoWebView Android Sin soporte NoChrome Android Sin soporte NoEdge Mobile Sin soporte NoFirefox Android Sin soporte NoOpera Android Sin soporte NoSafari iOS Sin soporte NoSamsung Internet Android Sin soporte No
report-uri
Deprecated
Chrome Soporte completo 25Edge Soporte completo 14Firefox Soporte completo 23IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 7WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 23Opera Android ? Safari iOS Soporte completo 7.1Samsung Internet Android Soporte completo Si
require-sri-for
Experimental
Chrome Soporte completo 54Edge Sin soporte NoFirefox Soporte completo 49
Deshabilitado
Soporte completo 49
Deshabilitado
Deshabilitado From version 49: this feature is behind the security.csp.experimentalEnabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo 41Safari Sin soporte NoWebView Android Soporte completo 54Chrome Android Soporte completo 54Edge Mobile Sin soporte NoFirefox Android Soporte completo 49
Deshabilitado
Soporte completo 49
Deshabilitado
Deshabilitado From version 49: this feature is behind the security.csp.experimentalEnabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Soporte completo 41Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 6.0
sandboxChrome Soporte completo 25Edge Soporte completo 14Firefox Soporte completo 50IE Soporte completo 10Opera Soporte completo 15Safari Soporte completo 7WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 50Opera Android ? Safari iOS Soporte completo 7.1Samsung Internet Android Soporte completo Si
script-srcChrome Soporte completo 25Edge Soporte completo 14Firefox Soporte completo 23IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 7WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 23Opera Android ? Safari iOS Soporte completo 7.1Samsung Internet Android Soporte completo Si
strict-dynamicChrome Soporte completo 52Edge Sin soporte NoFirefox Soporte completo 52IE Sin soporte NoOpera Soporte completo 39Safari Sin soporte NoWebView Android Soporte completo 52Chrome Android Soporte completo 52Edge Mobile Sin soporte NoFirefox Android Sin soporte NoOpera Android Soporte completo 39Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 6.0
style-srcChrome Soporte completo 25Edge Soporte completo 14Firefox Soporte completo 23IE Sin soporte NoOpera Soporte completo 15Safari Soporte completo 7WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile ? Firefox Android Soporte completo 23Opera Android ? Safari iOS Soporte completo 7.1Samsung Internet Android Soporte completo Si
upgrade-insecure-requestsChrome Soporte completo 43Edge Sin soporte No
Notas
Sin soporte No
Notas
Notas Under consideration for future release.
Firefox Soporte completo 42IE Sin soporte NoOpera Soporte completo 30Safari Soporte completo 10.1WebView Android Soporte completo 43Chrome Android Soporte completo 43Edge Mobile Sin soporte NoFirefox Android Soporte completo 42Opera Android Soporte completo 30Safari iOS Soporte completo 10.3Samsung Internet Android Soporte completo 4.0
worker-srcChrome Soporte completo 59
Notas
Soporte completo 59
Notas
Notas Chrome 59 and higher skips the deprecated child-src directive.
Edge Sin soporte NoFirefox Soporte completo 58IE Sin soporte NoOpera Soporte completo 48Safari Sin soporte NoWebView Android Soporte completo 59
Notas
Soporte completo 59
Notas
Notas Chrome 59 and higher skips the deprecated child-src directive.
Chrome Android Soporte completo 59
Notas
Soporte completo 59
Notas
Notas Chrome 59 and higher skips the deprecated child-src directive.
Edge Mobile Sin soporte NoFirefox Android Soporte completo 58Opera Android Soporte completo 48Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 7.0

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Compatibility unknown  
Compatibility unknown
Experimental. Esperar que el comportamiento cambie en el futuro.
Experimental. Esperar que el comportamiento cambie en el futuro.
No estandar . Esperar poco soporte entre navegadores.
No estandar . Esperar poco soporte entre navegadores.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
Ver notas de implementación.
Ver notas de implementación.
El usuario debe de habilitar explícitamente esta característica.
El usuario debe de habilitar explícitamente esta característica.
Usa un nombre no estandar.
Usa un nombre no estandar.

Existe una incompatibilidad específica en algunas versiones del navegador web Safari, por lo que si se establece una cabecera de Política de Seguridad de Contenido, pero no una cabecera de Same Origin, el navegador bloqueará el contenido alojado de forma autónoma y el contenido externo, e informará incorrectamente de que esto es debido a que la Política de Seguridad del Contenido no permite el contenido.

 

 

Vea también

Etiquetas y colaboradores del documento

Colaboradores en esta página: mdnwebdocs-bot, herleym, BubuAnabelas, vk496, CarlosRomeroVera
Última actualización por: mdnwebdocs-bot,