cross site scripting

Cross-Site Scripting (XSS) (3 consejos para prevenirlo)

Dotnetsafer
Dotnetsafer

👨‍💻Qué es Cross Site Scripting (XSS)

Cross Site Scripting (XSS) es una vulnerabilidad que permite a un atacante inyectar scripts del lado del cliente (generalmente JavaScript) en páginas web.

Cuando un usuario carga una página afectada, los scripts del atacante serán ejecutados , con los que podrá robar tokens de sesión y cookies, cambiar el contenido de la página web a través de la manipulación del DOM o incluso redirigir el navegador. Las vulnerabilidades XSS suelen ocurrir cuando una aplicación toma la entrada del usuario y la envía a una página no validada .


🔀 Tipos de ataques de Cross Site Scripting (XSS)

Ataque persistente XSS

En este tipo de ataque, la secuencia de comandos se almacena para siempre en el servidor de destino y, por lo tanto, se conoce como un ataque Persistent Cross Site Scripting. Este ataque intenta inyectar comandos maliciosos en cualquier cosa . Por ejemplo 👇

  • Publicar un foro
  • Campo de inicio de sesión
  • Entrada almacenada en una base de datos

Con este tipo de ataque, todas las personas que vean la publicación, mensaje o cualquier elemento infectado, se convierten en víctimas del ataque.

XSS persistente

Ataque XSS reflejado

En este segundo ataque, el atacante inyecta el script en el sitio vulnerable para que se lo devuelva al usuario . Entre las formas más comunes de hacer esto se encuentran las páginas atacadas en las que la entrada del usuario se convierte en parte del resultado de una página .

Una página de búsqueda puede mostrar términos de búsqueda al usuario y puede proporcionar una vía para este ataque. El script inyectado en la entrada de un usuario nunca debe ser almacenado por la aplicación web.

XSS reflejado

Ataques basados ​​en DOM

Este tercer ataque de Cross Site Scripting ocurre completamente en el navegador. El ataque funciona mediante la manipulación del modelo interno de la página web dentro del navegador, conocido como DOM , y se conoce como ataques basados ​​en DOM .

Al igual que los dos anteriores, esto permite al atacante ejecutar código malicioso. El código devuelto por el servidor se manipula en JavaScript ejecutable para la página web.

DOM XSS

❌Cómo prevenir Cross-Site Scripting (XSS)

Para evitar ataques de Cross Site Scripting (XSS) , es mejor no confiar en ninguna entrada del usuario o externa.

La aplicación web debe tratar estos datos como potencialmente peligrosos, independientemente de la fuente. Vamos a ver 3 métodos ASP.NET específicos para prevenir estos ataques de forma sencilla ✅

Utilice encabezados HTTP adecuados

Los encabezados HTTP son parte de las solicitudes y respuestas que se utilizan para cualquier comunicación. Pueden indicarle al navegador que trate los datos de cierta manera e incluir instrucciones que pueden ayudar a aumentar la seguridad del sitio web.

El encabezado HTTP X-XSS-Protection indicará al navegador que habilite un filtro cross-site scripting que puede prevenir ciertos ataques de cross-site scripting.

Uno de ellos es 👇

o

Al establecer el encabezado en un valor de 1, la página se desinfectará si se detecta un ataque de secuencias de comandos entre sitios.

Al agregar un “ mode = block; ” en el encabezado, la página dejará de mostrarse si detecta un ataque de Cross Site Scripting (XSS) .

Para agregar este encabezado HTTP a su aplicación ASP.NET , simplemente agregue el siguiente código en el archivo web.config, dentro de system.webServer 👇

Inserte datos de forma segura en código HTML

Es importante utilizar HTML DOM de forma segura y utilizar métodos seguros para evitar XSS basado en DOM como hemos visto antes. Hay varios métodos que están disponibles para usar al insertar contenido dinámicamente en el marcado HTML , y algunos de ellos son más propensos a ataques de secuencias de comandos entre sitios que otros.

Por ejemplo, cuando queremos agregar texto a un elemento HTML , debemos utilizar un método que solo interprete la información como texto y no como código HTML . < / p>

Esta propiedad interpretará todas las entradas como texto 👇

Si bien puede interpretar elementos HTML 👇

Esto lo hace vulnerable a los ataques de Cross Site Scripting (XSS).

Utilice la biblioteca de AntiXSS

Esta biblioteca tiene muchos métodos para prevenir ataques de Cross Site Scripting (XSS). Es importante utilizar métodos de filtrado de secuencias de comandos en función de dónde se colocarán los datos que no son de confianza y cómo se colocarán allí. Por ejemplo:

  • Antes de insertar datos que no sean de confianza en atributos HTML , utilice el método AntiXSS.HtmlAttributeEncode , que está diseñado específicamente para evitar que un atacante escape un HTML atributo .
  • AntiXSS.HTMLEncode debe usarse antes de agregar datos que no sean de confianza dentro de elementos HTML .

🟢Conclusión

Evitar Cross Site Scripting (XSS) no es fácil. OWASP enumera más de 80 vectores que se pueden orientar mediante Cross Site Scripting.

Desde Dotnetsafer esperamos que este artículo le ayude a aumentar la seguridad de sus aplicaciones y el de los usuarios que lo utilizan.

Summary
Cross-Site Scripting (XSS) (3 consejos para prevenirlo)
Article Name
Cross-Site Scripting (XSS) (3 consejos para prevenirlo)
Description
Cross Site Scripting (XSS) es una vulnerabilidad que permite a un atacante inyectar scripts del lado del cliente (generalmente JavaScript) en páginas web.
Author
Publisher Name
Dotnetsafer
Publisher Logo

0 Comments

Leave a Reply

More great articles

statistic cybersecurity

¿Cuál es la posibilidad de que una empresa sufra un ciberataque?7 cosas que debe saber sobre la CIBERSEGURIDAD para 2022

Cada vez que todo se digitaliza cada vez más, muchas empresas y pymes optan por redefinir y adaptar su modelo…

Read Story
.net maui

TOP 5 nuevas características de .NET MAUI

🔄 Acerca de .NET MAUI Microsoft ya ha comenzado a publicar .NET MAUI vistas previas en estos días. Muestran algunas…

Read Story
top 5 tools part 2

TOP 5 + 1 herramientas para cualquier desarrollador de .NET (Parte 2)

Como ya vimos en el anterior artículo Top 5 tools for any .NET developer mostramos las más destacadas de Visual…

Read Story
Arrow-up