Robustness principle

In computing, the robustness principle is a design guideline for software that states: "be conservative in what you do, be liberal in what you accept from others".

RFC 1122 (1989) expanded on Postel's principle by recommending that programmers "assume that the network is filled with malevolent entities that will send in packets designed to have the worst possible effect".

Programmers should avoid sending messages with "legal but obscure protocol features" that might expose deficiencies in receivers, and design their code "not just to survive other misbehaving hosts, but also to cooperate to limit the amount of disruption such hosts can cause to the shared communication facility".

[3] In 2001, Marshall Rose characterized several deployment problems when applying Postel's principle in the design of a new application protocol.

This is both a consequence of tolerating the unexpected and a product of a natural reluctance to avoid fatal error conditions.