Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

82
Vistas
Uso de Nonce generado en CSP en la aplicación Node.js/Express

Probé todas las soluciones posibles que se me ocurrieron para generar un nonce y pasarlo al CSP y a todos los scripts en línea con la variable nonce. He leído muchos artículos y todos son muy vagos sobre cómo hacer esto. He generado con éxito el nonce y está generando una cadena hexadecimal única en la carga de la página. Sin embargo, parece que no puedo descifrar cómo pasar ese nonce generado al CSP o las etiquetas de script de manera efectiva. Así es como se ve en el archivo route.js:

 router.route('/') .all(checkAuthentication) .get( (req, res, next) => { cspNonce = crypto.randomBytes(16).toString('hex'); next(); console.log("Nonce is" + cspNonce); // PREVENT PAGE CACHING res.setHeader('Cache-Control', 'private, max-age=0, no-cache, no-store, must-revalidate'); res.setHeader('Expires', '-1'); res.setHeader('Pragma', 'no-cache'); res.setHeader('Vary', '*'); res.setHeader('Strict-Transport-Security', "max-age=31536000; includeSubDomains; preload"); res.setHeader('X-Content-Type-Options', "nosniff"); res.setHeader("Content-Security-Policy", "script-src 'nonce-${cspNonce}' http://localhost:* https://code.jquery.com/jquery-2.1.4.js https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js https://www.google-analytics.com/analytics.js https://www.googletagmanager.com https://vimeo.com https://player.vimeo.com/api/player.js https://use.fontawesome.com/0202fc905b.js https://cdn.fontawesome.com/js/stats.js https://use.fontawesome.com/webfontloader/1.6.24/webfontloader.js https://code.jquery.com/jquery-latest.min.js https://code.jquery.com/jquery-latest.min.js https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.0/TweenMax.min.js https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.0/TimelineMax.min.js https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.5/ScrollMagic.min.js https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.5/plugins/animation.gsap.js https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.5/plugins/jquery.ScrollMagic.js img-src: https://www.googletagmanager.com"); res.render('survey_views/survey_container', {host_mode: process.env.HOST_MODE}); })

Además, cuando intento registrar en la consola la variable 'cspNonce' en otra parte de la aplicación, aparece sin definir. Estoy llamando a este nonce arriba en Router.js y necesito llamarlo en el archivo head.ejs que está unos niveles más arriba en la estructura.

Necesito descubrir cómo hacer que este nonce generado pase al CSP y poder llamarlo en otros archivos donde estoy tratando de ejecutar scripts en línea. Si alguien tiene alguna idea de lo que podría estar yendo mal aquí, sería muy útil.

Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Lo escribo en res.locals (res.locals.cspNonce en mi caso) y tanto la función CSP como el procesador de scripts lo leen desde allí.

También sugeriría reemplazar hex con base64 ya que es más compacto.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda