Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

141
Views
¿Cómo evitar que se activen los controladores de eventos en los atributos HTML?

Recientemente aprendí que el navegador activará el evento de toggle del elemento de details simplemente configurando los contenidos en un elemento, incluso cuando no está en el DOM. Lo siguiente ejecuta una alerta:

 document.createElement('p').innerHTML = "<details open ontoggle=\"alert('BAD')\">"

Lo mismo funciona para las imágenes y su evento de onload .

Compare esto con el uso de una etiqueta de secuencia de script . Lo siguiente no hace nada:

 document.createElement('p').innerHTML = "<script>alert('FINE')</script>"

Probado en Chrome y Firefox.

¿Hay alguna manera de suprimir la ejecución de controladores de eventos en línea como este? Idealmente, algo que se pueda establecer en el elemento principal.

Consideré agregar un controlador de eventos en el padre, ¡pero el evento de alternar no burbujea!

Una solución obvia es desinfectar la fuente html, pero estoy buscando algo más elegante y a prueba de balas que la manipulación de cadenas.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La respuesta es Content-Security-Policy . Simplemente no permita unsafe-inline .

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!