В інформатиці принцип стійкості () – рекомендація щодо проєктування програмного забезпечення, яка говорить: «будьте консервативними в тому, що робите ви, і ліберальними в тому, що ви приймаєте від інших». Часто це переформульовують як: «будьте консервативними в тому, що надсилаєте, і ліберальними в тому, що приймаєте». Цей принцип також відомий як закон Постела, на честь , який використав це формулювання в ранній специфікації TCP.

Іншими словами, програми, які надсилають повідомлення на інші комп'ютери (або іншим програмам на тому самому комп'ютері), повинні повністю дотримуватися специфікацій, але програми, які отримують повідомлення, повинні приймати невідповідні вхідні дані, якщо їх значення зрозуміле.

Інтерпретація Цей принцип уперше записав 1979 року у специфікації IPv4. 1989 року розширив принцип Постела, рекомендуючи програмістам «припускати, що мережа наповнена зловмисними сутностями, які надсилатимуть пакунки, призначені для досягнення найгіршого можливого ефекту» (). Протоколи повинні давати змогу додавати нові коди для наявних полів у майбутніх версіях протоколів, приймаючи повідомлення з невідомими кодами (можливо, реєструючи їх). Програмістам слід уникати надсилання повідомлень із «легальними, але незрозумілими протокольними функціями» (), які можуть виявити недоліки в одержувачах, та розробляти свій код «не лише так, щоб він пережив інші хости з поганою поведінкою, але й щоб співпрацювати над обмеженням кількості перешкод, які такі хости можуть спричинити спільному засобу зв'язку».

Критика 2001 року схарактеризував кілька проблем розгортання, що виникли під час застосування принципу Постела в розробці нового програмного протоколу. Наприклад, дефектна реалізація, яка надсилає невідповідні повідомлення, може використовуватися лише з реалізаціями, які толерують ці відхилення від специфікації, доки, можливо, через кілька років, вона не буде пов'язана з менш толерантною програмою, яка відхиляє її повідомлення. У такій ситуації виявити проблему часто буває складно, а впровадження рішення може бути дорогим. Тому Роуз рекомендував «явні перевірки узгодженості в протоколі ... навіть якщо на їх упровадження знадобляться додаткові витрати".

2018 року в статті Флорентіна Роше та Олів'є Перейри про технології підвищення приватності показано, як використати принцип стійкості Постела в протоколі маршрутизації Tor для порушення анонімності цибулевих сервісів та клієнтів Tor.

2023 року Мартін Томсон та Девід Шиназі стверджували, що принцип стійкості Постела насправді призводить до браку стійкості, зокрема безпеки:

Див. також

Принцип відкритості/закритості Філософія Unix

Примітки

Посилання

History of the (Internet) Robustness Principle (Nick Gall, May 2005) Internet Protocol , page 22; J. Postel, IEN 111, August 1979.