0Pricing
JavaScript Academy · Lección

Validación de entradas y fundamentos del escape

Valide y normalice las entradas con pequeñas listas de permitidos y guardas; escape los caracteres de riesgo antes de mostrar el texto.

Validación de entradas y fundamentos del escape es una lección gratuita de JavaScript Academy en CoddyKit. Esta es la lección 1 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de JavaScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de JavaScript Academy incluye 3 lecciones en total.

Panorama general

Objetivo: Haga que las entradas sean previsibles y seguras.

  • Use cláusulas de guarda para rechazar pronto
  • Prefiera las listas de permitidos a las reglas imprecisas
  • Normalice a una forma sencilla
  • Escape los caracteres especiales antes de mostrar el texto
Validación de entradas y fundamentos del escape — ilustración 1

Conceptos básicos de las guardas para números

Añada guardas sencillas: compruebe el tipo, compruebe el rango y normalice al valor final.

// Validate age: number and range guard
function parseAge(input) {
  // trim and parse
  const n = Number(input);
  if (!Number.isFinite(n)) return null; // reject non-numbers
  if (n < 0 || n > 130) return null;    // reject out-of-range
  return Math.floor(n);                  // normalize to integer
}

console.log("age ok:", parseAge("21"));
console.log("age bad:", parseAge("twenty"));
Validación de entradas y fundamentos del escape — ilustración 2

Escapado para mostrar de forma segura

Antes de mostrar texto del usuario, escape los caracteres especiales para que la interfaz lo trate como texto sin formato.

// Escape a few risky characters before displaying in HTML contexts
function escapeText(s) {
  if (typeof s !== "string") return "";
  return s
    .replaceAll("&", "&amp;")
    .replaceAll("<", "&lt;")
    .replaceAll(">", "&gt;")
    .replaceAll("\"", "&quot;")
    .replaceAll("'", "&#39;");
}

console.log("escaped:", escapeText("<b>Hello & bye</b>"));
Validación de entradas y fundamentos del escape — ilustración 3

Listas de permitidos en la práctica

Prefiera las listas de permitidos para conjuntos fijos, como códigos o roles. Normalice las mayúsculas, minúsculas y los espacios.

// Allowlist example: only certain country codes
const ALLOWED = new Set(["TR", "US", "DE", "GB"]);

function parseCountry(code) {
  if (typeof code !== "string") return null;
  const up = code.trim().toUpperCase();
  if (!ALLOWED.has(up)) return null; // reject unknown
  return up; // normalized
}

console.log("country ok:", parseCountry("tr"));
console.log("country bad:", parseCountry("xx"));
Validación de entradas y fundamentos del escape — ilustración 4

Validador de objetos pequeño

Compruebe el tipo y los límites y, después, devuelva una estructura normalizada en la que el resto del código pueda confiar.

// Validate a tiny user object and normalize
function validateUser(input) {
  if (typeof input !== "object" || input === null) return null;

  const nameOk = typeof input.name === "string" && input.name.trim().length >= 1 && input.name.trim().length <= 40;
  const ageOk = parseAge(input.age) !== null;

  if (!nameOk || !ageOk) return null;

  return {
    name: input.name.trim(),
    age: parseAge(input.age)
  };
}

console.log("user ok:", validateUser({ name: " Ayla ", age: "22" }));
console.log("user bad:", validateUser({ name: "", age: "old" }));
Validación de entradas y fundamentos del escape — ilustración 5

Buenos hábitos defensivos

Consejos:

  • Valide en los puntos de entrada (entrada del usuario y red).
  • Use listas de permitidos, rangos y comprobaciones de tipos.
  • Normalice una sola vez y mantenga sencillo el resto.
  • Escape el texto antes de mostrárselo a los usuarios.
Validación de entradas y fundamentos del escape — ilustración 6

Cuestionario sobre fundamentos de la entrada defensiva

Comprobación rápida: patrón de entrada segura.

Validación de entradas y fundamentos del escape — ilustración 7

Resumen

Resumen: proteja desde el principio, use listas de permitidos, normalice a una estructura segura y escape antes de mostrar. Mantenga cada paso pequeño y legible.

Validación de entradas y fundamentos del escape — ilustración 8

Preguntas frecuentes

¿La lección «Validación de entradas y fundamentos del escape» es gratis?

Sí — el texto completo de «Validación de entradas y fundamentos del escape» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de JavaScript Academy, actualiza a CoddyKit PRO. El curso de JavaScript Academy incluye 3 lecciones en total.

¿Qué aprenderé en «Validación de entradas y fundamentos del escape»?

Valide y normalice las entradas con pequeñas listas de permitidos y guardas; escape los caracteres de riesgo antes de mostrar el texto. Practicas JavaScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar JavaScript Academy?

No se requiere experiencia previa. JavaScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 3.

¿Cuánto tiempo toma la lección «Validación de entradas y fundamentos del escape»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de JavaScript Academy?

Sí. Cada lección de JavaScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Validación de entradas y fundamentos del escape
  2. Combinación segura de objetos, congelación y sellado
  3. Límites de errores (conceptuales) sin frameworks
← Volver a JavaScript Academy