Todas las lecciones Read in English

Seguridad a fondo · Unidad 20 · Lección 15 de 27

Separa los datos de las instrucciones

Sigue un texto por su validación, una consulta y una página.

10 minlista

Para prepararteAplicaciones web

Después de esta lección puedes

  • Seguir un valor aportado por validación, parámetros de consulta y renderizado.
  • Identificar qué evidencia respalda un límite de interpretación y cuál no.
  • Definir aceptación separada para texto, ordenación dinámica y contenido enriquecido opcional.

Una persona escribe un apóstrofo en su nombre. La aplicación debe guardarlo y mostrarlo correctamente. Borrar la puntuación no es una buena definición de seguridad.

Parametrización: Separar la estructura de una consulta de los valores de datos suministrados.

Validar el significado → Separar datos de consulta → Codificar según destino1Validar el significado2Separar datos de consulta3Codificar según destino
El mismo texto pasa por intérpretes diferentes. Cada límite requiere un control adecuado.

Validar es comprobar si el dato corresponde

La validación comprueba estructura, longitud, rango y significado. Una cantidad puede ser un entero y seguir siendo inválida si es negativa. El servidor repite las comprobaciones aunque el navegador haya ayudado con el formulario.

No es una limpieza universal. Los nombres y mensajes pueden incluir puntuación y caracteres de muchos idiomas. Destruir datos válidos puede molestar al usuario sin proteger el límite importante.

La base de datos separa estructura y valores

Las consultas parametrizadas mantienen los valores separados de la estructura prevista. No hacen el trabajo de la codificación HTML. Algunas partes de una consulta, como elegir la columna de ordenación, no son parámetros de valor: traduce esa elección a una lista explícita de identificadores permitidos.

La cuenta de la aplicación también debe tener solo los permisos necesarios. Esto limita consecuencias, pero no repara una consulta construida de forma insegura.

La salida tiene un contexto

El navegador interpreta de forma diferente el texto HTML, los atributos, las URL y los scripts. Usa los mecanismos seguros del framework y el tratamiento adecuado al destino. Si se permite HTML enriquecido, hace falta una sanitización apropiada.

Codificar demasiado pronto puede duplicar la codificación o corromper datos. Conserva el valor previsto y aplica el control al entregarlo al intérprete. Una política CSP puede reducir consecuencias, pero no sustituye un renderizado correcto.

Revisión resuelta: mismo valor, nuevo destino

Una librería ficticia admite reseñas de texto. La política del servidor permite puntuación ordinaria y nombres internacionales dentro de una longitud documentada. El ejercicio aporta el resultado; no necesitas contar caracteres ni construir consultas.

  • V1: Una reseña ordinaria breve menciona a la autora O’Neil. El servidor confirma longitud y requisitos de campos correctos. La reseña almacenada debe conservar ese apóstrofo.
  • V2: La revisión acredita consulta fija con el texto vinculado mediante parámetros de valor. Las opciones “newest” y “helpful” corresponden a dos estructuras aprobadas. La cuenta de base solo tiene acceso necesario para el servicio.
  • V3: La página de clientes muestra la reseña como texto HTML mediante el escape del framework. Un registro de salida confirma que aparece el texto previsto.
  • V4: Se propone una vista interna que inserte el mismo valor como HTML de confianza. No aporta política de contenido enriquecido ni evidencia de sanitización. La función no está aprobada.
Predice¿La parametrización correcta V2 permite publicar V4 porque el valor ya cruzó de forma segura la base de datos?

No. V2 controla cómo interpreta la base un valor. V4 introduce una interpretación del navegador que V2 no gobierna. Conserva texto o define y verifica una política de contenido enriquecido antes de aprobar. No hace falta un contenido dañino para identificar esta brecha de diseño.

Conservar datos y revisar intérpretes

V1 es una comprobación útil de negocio. No declara universalmente seguro el texto. Una cantidad, una reseña y una opción de ordenación pueden requerir validación diferente por sus significados previstos.

V2 separa valores ordinarios y elecciones estructurales. Muchas interfaces no permiten vincular tabla o columna como valor normal. Una correspondencia aprobada limita esas elecciones mientras la reseña sigue siendo dato vinculado. La autorización aún decide a qué registros puede acceder la persona; parametrizar no toma esa decisión.

V3 muestra el comportamiento previsto para el registro aportado. Evita guardar una versión universal “segura para HTML” solo porque un destino use HTML: otro puede interpretar de forma diferente y la codificación repetida puede corromper el valor visible.

V4 necesita su propia aceptación. Si no hace falta formato enriquecido, mostrar texto simplifica la función. Si se necesita, define contenido permitido y verifica sanitización y tratamiento adecuados; no presupongas que la vista hereda seguridad del almacenamiento.

Entregable modelo: conserva el apóstrofo legítimo, consulta fija y opciones limitadas; no apruebes la vista enriquecida sin cumplir su requisito independiente. Separa evidencia de diseño y salida observada de comportamientos todavía sin probar.

EXPLORA EL CONCEPTO

Elige el límite

Un nombre ficticio se utiliza en tres lugares.

El formulario recibe el nombre

Valida la longitud y los requisitos sin tratar toda puntuación como maliciosa.

El nombre se usa en una consulta

Pásalo como parámetro de valor, manteniendo fija la estructura.

El nombre aparece en una página

Muéstralo como texto con el tratamiento apropiado para ese contexto HTML.

Modelo simplificado para aprender. No se conecta a sistemas ni usa datos reales.

Llévalo a una decisión

Pregunta qué interpretará el dato después. Validación, parámetros, codificación y mínimo privilegio tienen funciones distintas.

Términos que viste

Parametrización

Compruébate

Sin reloj ni penalizaciones. Lee cada explicación y vuelve a intentarlo cuando quieras.

  1. ¿Qué acredita la validación V1?

    Ver la respuesta

    Respuesta correcta: La reseña cumple los requisitos de entrada; base de datos y salida necesitan controles propios. Validar decide si el valor corresponde al flujo, no si todo intérprete posterior lo tratará solo como dato.

  2. ¿Qué conclusión respalda V2?

    Ver la respuesta

    Respuesta correcta: El texto es un valor y las opciones de ordenación se traducen a estructura aprobada; los permisos sobre registros se deciden aparte. Acredita dos controles de construcción. Separar estructura y valores no decide propiedad ni confidencialidad.

  3. ¿Qué debe hacerse con V4 antes de aprobarla?

    Ver la respuesta

    Respuesta correcta: Conservar texto o definir y verificar una política de contenido enriquecido y sanitización apropiada para ese destino. La función cambia cómo se interpreta el mismo valor. Parámetros y renderizado de texto no cubren insertar HTML de confianza.

  4. ¿Qué evidencia acredita el comportamiento previsto de extremo a extremo?

    Ver la respuesta

    Respuesta correcta: El texto legítimo se conserva al guardar y mostrar, funcionan ordenaciones aprobadas y se verifica aparte la vista enriquecida. Mide fidelidad útil y cada límite relevante, sin convertir un control en solución universal.

Pruébalo

  • EscribePrepara tres filas de V1-V4: validación de negocio, construcción de consulta y salida web. Indica qué establece cada registro y qué falta cambiar o comprobar. Incluye un ejemplo legítimo que conserve el apóstrofo y revisión separada de la vista enriquecida.
Referencias