window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versión: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster ya existe') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Seguridad de aplicaciones web - Vulnerabilidad XSS - The Codest
The Codest
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Industrias
    • Fintech y Banca
    • E-commerce
    • Adtech
    • Tecnología sanitaria
    • Fabricación
    • Logística
    • Automoción
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
Flecha atrás VOLVER
2021-04-16
Desarrollo de software

Seguridad de aplicaciones web - Vulnerabilidad XSS

Lukasz Kolko

Los ataques XSS permiten a los atacantes inyectar scripts del lado del cliente en páginas web vistas por otros usuarios. Los principales efectos de esta vulnerabilidad son la posibilidad de ejecutar cualquier acción en el contexto del usuario conectado, y de leer cualquier dato en el contexto del usuario conectado.

Escenario de ataque

  1. El atacante localiza la vulnerabilidad XSS en un sitio web utilizado por la víctima, por ejemplo, el sitio web de un banco
  2. La víctima está actualmente conectada a esta página
  3. El atacante envía a la víctima una URL manipulada
  4. La víctima hace clic en la URL
  5. En la víctima banco sitio web, JavaScript código comienza a ejecutarse para interceptar los datos del usuario o ejecutar una transferencia en su nombre a la cuenta del atacante

Cabe señalar que las operaciones realizadas en nombre de la víctima pueden ser invisibles para ella, ya que pueden tener lugar en segundo plano utilizando la API del banco, o el atacante puede realizarlas posteriormente con los datos necesarios para la autenticación, tokens, cookies, etc.

Tipos de XSS

1. XSS reflejado

Es aquel en el que el código HTML/JavaScript contenido en cualquier parámetro (por ejemplo, GET, POST o cookie) se muestra en respuesta.

Una página con una entrada de texto para buscar algo que pone el parámetro ?search=foo en la terminación de la URL al consultar la API. Después de introducir cualquier frase, si no se encuentra, se coloca un mensaje de retorno en HTML ex.

<div>No se ha encontrado ningún resultado para <b>foo</b></div>

Podemos intentar poner la URL ?search=..

2.DOM XSS

Esto ocurre cuando se habilita su ejecución mediante el uso de funciones peligrosas en JavaScript, tales como `eval` o `innerHtml`. El "Live example" a continuación muestra un ataque DOM XSS basado en el archivo `innerHtml` función.

3. XSS almacenado

En este caso, el código malicioso se escribe en el lado del servidor. Por ejemplo, podemos enviar un comentario con código malicioso a una entrada de blog que se carga en el servidor. Su cometido es, por ejemplo, esperar la moderación del administrador para luego robar sus datos de sesión, etc.

Métodos de inyección

1. En el contenido de la etiqueta

`onerror=alert('XSS')`en

<img src onerror="alert('XSS')" />

2. En el contenido del atributo

`" onmouseover=alert('XSS')` en

<div class="" onmouseover="alert('XSS')""></div>

  1. En el contenido del atributo sin las comillas

x onclick=alert('XSS')en

<div class="x" onclick="alert('XSS')"></div>

  1. En el hrefatributo ef

javascript:alert('XSS') en

<a href="javascript:alert('XSS')"></a>

  1. En la cadena dentro del código JavaScript

";alert('XSS')// en

  1. En el atributo con el evento JavaScript

');alert('XSS')// donde ' es una comilla simple, en

<div onclick="change('&#39;);alert('XSS')//')">John</div>

  1. En el href dentro del protocolo JavaScript

);alert(1)// donde %27 es una comilla simple, en

<a href="javascript:change('');alert(1)//')">haga clic en</a>


Ejemplo en directo

Métodos de defensa

  1. Codificación de datos mediante funciones incorporadas que se encuentran en muchos lenguajes de programación.
  2. Usar sistemas de plantillas con codificación automática. La mayoría de los frameworks populares que utilizan este tipo de sistemas nos protegen de la inyección XSS (Django, Templates, VueReact, etc.).
  3. No utilice funciones como evalúe o Función con datos de usuarios no fiables.
  4. No utilice funciones y propiedades que asignen código HTML directamente a los elementos del árbol DOM, por ejemplo innerHTML, outerHTML, insertAdjacentHTML, ocumento.escribir. En su lugar, puede utilizar funciones que asignen texto directamente a estos elementos, como textoContenido o innerText.
  5. Tenga cuidado cuando redirija al usuario a una URL que esté bajo su control. Riesgo de inyección location = 'javascript('XSS')'.
  6. Filtrar HTML utilizando bibliotecas como DOMPurificar.
  7. Tenga cuidado al cargar .html o .svg archivos. Puede crear un dominio independiente desde el que se servirán los archivos cargados.
  8. Utilice la Política de seguridad de contenidos mecanismo.
  9. Eche un vistazo a los filtros anti-XSS integrados en los navegadores más populares.

    Si te parece interesante este artículo, sigue a Lukasz en Github: https://github.com/twistezo

Más información:

Estrategias de obtención de datos en NextJS

API de Rails y CORS. Una pizca de conciencia

¿Por qué debería (probablemente) utilizar Typescript?

Artículos relacionados

Desarrollo de software

Crear aplicaciones web preparadas para el futuro: ideas del equipo de expertos de The Codest

Descubra cómo The Codest destaca en la creación de aplicaciones web escalables e interactivas con tecnologías de vanguardia, ofreciendo experiencias de usuario fluidas en todas las plataformas. Descubra cómo nuestra experiencia impulsa la transformación...

EL MEJOR
Desarrollo de software

Las 10 mejores empresas de desarrollo de software de Letonia

Conozca las principales empresas de desarrollo de software de Letonia y sus innovadoras soluciones en nuestro último artículo. Descubra cómo estos líderes tecnológicos pueden ayudarle a mejorar su negocio.

thecodest
Soluciones para empresas y escalas

Fundamentos del desarrollo de software Java: Guía para externalizar con éxito

Explore esta guía esencial sobre el desarrollo de software Java outsourcing con éxito para mejorar la eficiencia, acceder a la experiencia e impulsar el éxito de los proyectos con The Codest.

thecodest
Desarrollo de software

La guía definitiva para subcontratar en Polonia

El auge de las outsourcing en Polonia está impulsado por los avances económicos, educativos y tecnológicos, que fomentan el crecimiento de las TI y un clima favorable a las empresas.

TheCodest
Soluciones para empresas y escalas

Guía completa de herramientas y técnicas de auditoría informática

Las auditorías informáticas garantizan sistemas seguros, eficientes y conformes. Obtenga más información sobre su importancia leyendo el artículo completo.

The Codest
Jakub Jakubowicz CTO y Cofundador

Suscríbase a nuestra base de conocimientos y manténgase al día de la experiencia del sector informático.

    Quiénes somos

    The Codest - Empresa internacional de desarrollo de software con centros tecnológicos en Polonia.

    Reino Unido - Sede central

    • Oficina 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polonia - Centros tecnológicos locales

    • Parque de oficinas Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Embajada del Cerebro, Konstruktorska
      11, 02-673 Varsovia, Polonia

      The Codest

    • Inicio
    • Quiénes somos
    • Servicios
    • Case Studies
    • Saber cómo
    • Carreras profesionales
    • Diccionario

      Servicios

    • Asesoramiento
    • Desarrollo de software
    • Desarrollo backend
    • Desarrollo Frontend
    • Staff Augmentation
    • Desarrolladores de backend
    • Ingenieros de la nube
    • Ingenieros de datos
    • Otros
    • Ingenieros de control de calidad

      Recursos

    • Hechos y mitos sobre la cooperación con un socio externo de desarrollo de software
    • De EE.UU. a Europa: ¿Por qué las startups estadounidenses deciden trasladarse a Europa?
    • Comparación de los polos de desarrollo de Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filipinas), Eurasia (Turquía)
    • ¿Cuáles son los principales retos de los CTO y los CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condiciones de uso del sitio web

    Copyright © 2025 por The Codest. Todos los derechos reservados.

    es_ESSpanish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean nl_NLDutch etEstonian elGreek es_ESSpanish