← Glosario Concepto

Ley de Postel

También: Postel's Law · Principio de robustez

  • software-design
  • architecture
  • accessibility
  • best-practices
  • privacy

Sé conservador en lo que enviás, sé liberal en lo que aceptás.

También conocida como el “principio de robustez”.

Origen

La escribió Jon Postel en 1980, en la RFC 761 del protocolo TCP, y la repitió en la RFC 793 (1981). Postel — uno de los padres fundadores de internet, editor de las RFCs durante casi treinta años — quería que los implementadores de protocolos siguieran un principio operativo: mandá datos lo más estrictamente correctos posibles, pero aceptá datos del otro lado siendo lo más tolerante que puedas con sus desviaciones e implementaciones imperfectas. La idea era que internet pudiera crecer con miles de implementaciones distintas, escritas por gente sin contacto entre sí, sin colapsar por incompatibilidades menores.

Ejemplo y la crítica moderna

La ley es la razón por la que TCP/IP funcionó cuando ARPANET pasó de unos cientos a miles de nodos: cada nuevo implementador tenía margen para equivocarse en los detalles sin romper la red. Es también la razón por la que HTML y los navegadores sobrevivieron tres décadas de páginas mal escritas: si Chrome se negara a renderizar cualquier HTML inválido, la mitad de internet desaparecería.

Pero hay una crítica moderna importante (Martin Thomson, IETF, 2015 en adelante): la tolerancia “liberal” a entradas malformadas se convierte, con el tiempo, en una superficie de ataque y de ambigüedad. Si tu parser acepta cinco variantes inválidas y las trata como equivalentes a la válida, un atacante puede usar las variantes para colarse por validadores intermedios. La industria de seguridad termina prefiriendo lo opuesto: falla rápido, falla fuerte, sólo aceptá lo que está perfectamente conforme. Modern HTTP (HTTP/2, HTTP/3) es deliberadamente más estricto que HTTP/1.1.

La síntesis útil para 2026: liberal en interfaces de usuario (acepta el email con espacios y mayúsculas, normalizalo, no le grites al usuario), conservador en interfaces máquina-máquina (no aceptes JSON con campos desconocidos en una API interna; vale más romper el deploy hoy que tener un bug de seguridad mañana).

Conceptos relacionados

Una idea por semana, contada con una historia

Si te sirvió, seguro te sirve el resto. Recorré el glosario o escribime qué concepto te falta.