Seguridad a fondo · Unidad 20 · Lección 3 de 27
Comprender JavaScript del cliente
Sigue los datos en el navegador y distingue configuración pública de secretos privilegiados.
Para prepararteHTTP y proxies
Después de esta lección puedes
- explicar qué exponen los bundles y mapas de código
- distinguir lógica visual de autorización del servidor
- seguir un valor sin ejecutar código desconocido
JavaScript decide gran parte de lo que un navegador muestra y solicita. Leerlo ayuda a explicar por qué un formulario envía un campo o una página cambia tras recibir una respuesta. La habilidad central consiste en seguir datos, sin convertir cada función llamativa en una vulnerabilidad.
El código entregado no es secreto
Minificar reduce tamaño; ofuscar dificulta la lectura. Ninguna técnica protege de forma fiable un secreto compartido integrado frente a quien ejecuta el cliente. Un mapa de código relaciona posiciones del archivo generado con las fuentes originales. Algunos incluyen su contenido; otros necesitan archivos separados. Publicarlo no es una vulnerabilidad automática: importan lo revelado y la política prevista.
Lee transformaciones, no solo nombres
Una variable llamada token puede ser un identificador inocuo. Una API que interpreta HTML puede recibir únicamente contenido estático confiable. Examina el origen del valor, sus transformaciones y quién termina interpretándolo.
La lectura estática no exige ejecutar código desconocido. Sustituir una función de evaluación por otra de registro no vuelve seguro el resto del script. Considera ese código potencialmente activo; no uses credenciales reales solo para comprender un archivo.
Escenario: tres elementos en un bundle
Una aplicación meteorológica contiene una clave pública de mapas, un menú oculto de administrador y una credencial de facturación privada. La primera puede estar diseñada para distribuirse, según las restricciones del proveedor. Ocultar el menú solo cambia la presentación: el servidor debe aplicar permisos. La credencial privada debe revocarse, sustituirse y retirarse del cliente público, revisando su exposición.
Los tokens de usuario de corta duración pueden llegar legítimamente al navegador. Su duración, destinatario, alcance, almacenamiento y exposición difieren de un secreto administrativo compartido de la aplicación.
Importa el contexto del navegador
Workers y service workers no crean automáticamente orígenes nuevos. Su comportamiento depende del tipo, origen, alcance y políticas del navegador. Un service worker puede influir en solicitudes dentro de su alcance; por eso importan la integridad del despliegue y las actualizaciones.
CORS regula el acceso del navegador a determinadas respuestas de otros orígenes; no aporta autorización del servidor. Una política CSP restrictiva limita comportamientos, pero no vuelve seguro cualquier flujo de datos.
Describe el problema con precisión
Documenta origen, transformación, uso sensible, control esperado y evidencia. Una comprobación de rol solo en el cliente es un indicio de diseño; confirmar que falta autorización en el servidor es otra conclusión. Sigue en XSS para comprender el contexto final de interpretación.
Sigue un valor hasta dos destinos
Una aplicación ficticia de un club recibe el nombre visible del miembro como JSON. En el perfil, un renderizador normal de texto lo muestra. En la vista previa de exportación, el mismo nombre se combina con una cadena de marcado antes de analizarla como HTML. Son registros de diseño aportados, no código para ejecutar.
| Etapa | Perfil | Vista previa |
|---|---|---|
| Origen | Nombre controlado por el miembro | El mismo nombre almacenado |
| Transformación | Recorte de espacios | Recorte de espacios |
| Uso final | Renderizado como texto | Análisis como HTML |
Recortar cambia los espacios; no define una política HTML. El transporte JSON y el almacenamiento en base de datos tampoco autorizan al nombre a convertirse en marcado. El tratamiento como texto del perfil conserva el significado previsto. Para la exportación, elige un espacio de texto o un mecanismo que preserve ese texto en el contexto final.
PrediceEl equipo corrige el renderizador del perfil. ¿Esa corrección cubre la vista previa de exportación?
Los registros muestran otro uso final. Revisa y corrige también la exportación. Un tratamiento seguro en un destino no protege automáticamente a otro consumidor del mismo valor almacenado.
Esta revisión de diseño identifica un límite de renderizado ausente. Por sí sola no establece ejecución de scripts, sesiones afectadas ni cuántas personas quedaron expuestas. Separa la explicación del flujo de las afirmaciones sobre impacto observado.
Repite el seguimiento para credenciales con otra pregunta: qué autoridad concede el valor y quién debe poseerlo. Un identificador deliberadamente público y un secreto compartido privilegiado pueden parecer cadenas largas. Clasifícalos por el contrato del proveedor, distribución prevista, permisos y duración, en lugar de basarte en el nombre de la variable.
Una buena nota puede ser breve: origen del valor, transformaciones, intérprete final, significado previsto, control propuesto y resultado que verificaría ese significado.
Términos que viste
bundleminificaciónmapa de códigodestino de datoscliente público
Compruébate
Sin reloj ni penalizaciones. Lee cada explicación y vuelve a intentarlo cuando quieras.
Las preguntas de esta lección han cambiado. Tu lectura sigue guardada; repasa las preguntas actualizadas.
-
El club recorta espacios de un nombre almacenado antes de analizarlo como HTML. ¿Qué límite sigue pendiente?
Ver la respuesta
Respuesta correcta: Si el texto del miembro puede interpretarse como marcado en el uso final. Recortar espacios no proporciona una política de renderizado HTML. Para un nombre simple, usa un destino que preserve texto.
-
El perfil está corregido, pero la exportación tiene su propia ruta de análisis HTML. ¿Qué debe concluir la revisión?
Ver la respuesta
Respuesta correcta: La exportación necesita su propia corrección y verificación del tratamiento como texto. Sigue el mismo valor hasta cada destino; no supongas que una corrección cubre todos los usos.
-
Un paquete público contiene una cadena larga llamada token. ¿Qué determina mejor si supone exposición de un secreto?
Ver la respuesta
Respuesta correcta: El contrato del emisor, la distribución prevista y la autoridad concedida por ese valor. Un identificador público y una credencial privilegiada requieren tratamientos diferentes aunque se parezcan.
-
Una credencial de facturación privada se distribuyó a todos los navegadores. ¿Cuál es la dirección correctiva adecuada?
Ver la respuesta
Respuesta correcta: Retirar la credencial, revisar su exposición y mantener la autoridad compartida de reemplazo fuera de los clientes públicos. Quitarla no revoca las copias existentes. Corrige tanto el ciclo de vida como el diseño de distribución.
-
Una revisión estática solo encuentra una comprobación de rol en el cliente. ¿Qué conclusión puede sostenerse?
Ver la respuesta
Respuesta correcta: La interfaz restringe la presentación; aplicar la regla en el servidor requiere evidencia aparte. Localiza la operación que decide y la evidencia de su política antes de afirmar que falta un control en el servidor.
Pruébalo
- EscribeEscribe dos notas del origen al uso del nombre del club: una para el perfil y otra para la exportación. Explica por qué recortar espacios no basta para exportar. Añade un criterio que compruebe que el nombre sigue siendo texto sin ejecutar código desconocido.