Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 32621|Respuesta: 2

[Vulnerabilidad de seguridad] Vulnerabilidades ausentes o inseguras en el encabezado "Política de Seguridad-Contenido"

[Copiar enlace]
Publicado en 11/6/2021 10:36:39 | | | |
El encabezado de respuesta HTTP Content-Security-Policy permite al sitio controlar qué recursos carga el agente de usuario para una página determinada. Excepto en casos especiales, el conjunto de políticas consiste principalmente en especificar los puntos finales de origen y script del servidor. Esto ayudará a detener ataques de scripting entre sitios

Documentación:El inicio de sesión del hipervínculo es visible.

Este artículo describe la Política de Seguridad de Contenidos del W3C, o CSP para abreviar. Como su nombre indica, esta especificación está relacionada con la seguridad del contenido y se utiliza principalmente para definir qué recursos puede cargar una página y reducir la aparición de XSS.

Los primeros Chrome soportaban CSP mediante el encabezado de respuesta X-WebKit-CSP, mientras que Firefox e IE soportaban X-Content-Security-Policy, y Chrome25 y Firefox23 empezaron a soportar la política estándar Content-Security-Policy.

Se puede recopilar información sensible sobre aplicaciones web, como nombres de usuario, contraseñas, nombres de máquinas y/o ubicaciones de archivos sensibles,
Los usuarios principiantes pueden ser persuadidos para proporcionar información sensible como nombres de usuario, contraseñas, números de tarjeta de crédito, números de la seguridad social, etc


Primero, creemos un nuevo proyecto ASP.NET MVC, creemos un nuevo script js y carguemos dinámicamente el código js de las estadísticas de Baidu, de la siguiente manera:




Como se muestra en la figura anterior, podemos ver el código de script JS que se ha introducido con éxito en un tercero (Baidu), si hay algún código malicioso en el JS de terceros, como robar cookies, modificar contenido, saltar enlaces, etc.

¿Cómo puedo evitar la introducción de scripts JS inseguros de terceros?

Solución alternativa

Cabeza de respuestaAñadir "Política de Seguridad-Contenido"por ejemplo:

Content-Security-Policy: default-src 'self' El inicio de sesión del hipervínculo es visible.;
                         connect-src 'ninguno';
Content-Security-Policy: connect-src El inicio de sesión del hipervínculo es visible.
                         script-srcEl inicio de sesión del hipervínculo es visible.

Directiva
Ejemplo de valor de instrucción
ilustrar
default-src
'yo' cnd.a.com
Define la política de carga predeterminada para todos los tipos de recursos (JS, IMAGE, CSS, WEB FONT, SOLICITUDES AJAX, IFRAMES, MULTIMEDIA, ETC.) y usa la política predeterminada para ciertos tipos de recursos si no existe una política definida separada.
script-src
'yo' js.a.com
Define una política de carga para JavaScript.
style-src
'yo' css.a.com
Define una política de carga para un estilo.
IMG-SRC
'yo' img.a.com
Define una política de carga para las imágenes.
connect-src
'yo'
Cargando políticas para peticiones desde Ajax, WebSockets, etc. Si no está permitido, el navegador simula una respuesta con un estado de 400.
font-src
font.a.com
Política de carga para WebFont.
object-src
'yo'
<object><embed> <applet> Políticas de carga para plugins como Flash introducidas para etiquetas como , o .
media-src
media.a.com
<audio> <video> Estrategias de carga para multimedia HTML introducidas para etiquetas como o .
Frame-SRC
'yo'
Política de carga para los fotogramas.
Caja de arena
Formas permitidas
Activa sandbox (similar a la propiedad sandbox de un iframe) para el recurso solicitado.
Report-uri
/report-uri
Indica al navegador a qué dirección enviar la información del registro si el recurso solicitado no está permitido por la política. Especial: Si quieres que el navegador solo informe de los registros y no bloquee nada, puedes usar la cabecera Content-Security-Policy-Report-Only en su lugar.

Modifiquemos el archivo web.config del proyecto para añadir una cabecera de respuesta personalizada de la siguiente manera:

Reejeción del proyecto como se muestra a continuación:



El navegador bloqueó con éxito la carga de scripts js de terceros:

Se negó a cargar el script 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319' porque viola la siguiente directiva de Política de Seguridad de Contenido: "script-src 'self' http://localhost:56888/ ". Cabe señalar que 'script-src-elem' no estaba explícitamente establecido, por lo que 'script-src' se usa como respaldo.
(Fin)




Anterior:ASP.NET Orden de ejecución de MVC HttpApplication
Próximo:Para resumir la popular enciclopedia User-Agent del navegador
Publicado en 17/12/2021 22:38:43 |
Aprende !!!!!!!!!!!!!!
Publicado en 18/10/2022 17:16:34 |
Llevo mucho tiempo buscando y aprendiendo un poco
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com