Як працює JWT і чому його вміст не є секретним
JWT переносить набір claims у компактному підписаному повідомленні. Довіру створює перевірений підпис і політика валідації, а не незрозумілий вигляд токена.
Читати статтю / 8 хв читання RegexЯк регулярні вирази читають текст
Регулярний вираз описує текст через літерали, класи символів, повторення, межі та групи. Розуміння цих частин прибирає відчуття магії.
Читати статтю / 8 хв читання URLЯк URL перетворює текст на надійну вебадресу
URL — це не просто посилання, а структурована інструкція зі схемою, хостом, шляхом, параметрами, фрагментом і правилами кодування.
Читати статтю / 8 хв читання UUIDЯк UUID створює ідентифікатори без центральної координації
UUID дозволяє незалежним системам створювати ідентифікатори з надзвичайно малою ймовірністю collision, спрощуючи offline work, merge та distributed data.
Читати статтю / 8 хв читання TimeUnix time і проблема представлення моменту «зараз»
Unix timestamp створює спільну часову шкалу, але одиниці, точність годинника, leap seconds і різниця між моментом та локальним часом потребують явних рішень.
Читати статтю / 8 хв читання HashЩо насправді доводить криптографічний хеш
Хеш є компактним відбитком точних байтів. Він допомагає перевіряти цілісність, але сам по собі не доводить авторство, безпечність або справжність даних.
Читати статтю / 8 хв читання Base64Що таке кодування Base64 і навіщо воно досі потрібне
Base64 перетворює довільні байти на текст, який безпечно проходить через текстові протоколи. Розбираємося, як це працює, скільки коштує і де справді корисне.
Читати статтю / 8 хв читання HTMLНавіщо HTML потрібні character references
HTML entities дозволяють показувати символи, які parser інакше сприйняв би як markup. Їхня правильна роль стає зрозумілою лише разом із контекстом.
Читати статтю / 8 хв читання JSONЧому JSON став основною мовою веб-API
JSON переміг не через досконалість, а завдяки вдалому балансу між простотою, читабельністю та сумісністю з різними мовами програмування.
Читати статтю / 8 хв читання RegexЯк уникнути catastrophic backtracking у regex
Деякі регулярні вирази перебирають величезну кількість шляхів на спеціально підібраному ввідному тексті, створюючи performance bug і ризик ReDoS.
Читати статтю / 8 хв читання Base64Base64 і Base64URL: схожі формати для різних середовищ
Base64URL змінює лише кілька символів, але саме вони визначають, чи можна безпечно помістити закодовані дані в URL, cookie або JWT.
Читати статтю / 8 хв читання HashChecksum, хеш і цифровий підпис: різні відповіді на питання про цілісність
Checksum виявляє випадкову помилку, хеш створює сильний відбиток, MAC підтверджує shared secret, а цифровий підпис пов’язує дані з private key.
Читати статтю / 8 хв читання UUIDЯк вибрати правильну версію UUID
Random, time-ordered і name-based UUID мають різні властивості. Version потрібно вибирати за вимогами до privacy, ordering, determinism і storage.
Читати статтю / 8 хв читання JSONЯк діагностувати неправильний JSON у реальних застосунках
Помилка JSON-парсера часто вказує не на пропущену кому, а на зламану межу, неправильне кодування, обрізану відповідь або HTML замість очікуваних даних.
Читати статтю / 8 хв читання URLЯк проєктувати чисті, стабільні та зручні для поширення URL
Хороша адреса пояснює ресурс, зберігає сенс після змін, не розкриває зайвий стан і працює поза застосунком, який її створив.
Читати статтю / 8 хв читання JSONЯк проєктувати JSON API, що витримує зміни
Стабільність JSON API залежить від передбачуваних типів, послідовних назв, обережної сумісності та помилок, із якими клієнт може працювати.
Читати статтю / 9 хв читання TimeЯк проєктувати надійні системи, залежні від часу
Expiration, scheduling, retry та порядок подій потребують явної семантики годинника, idempotency і готовності до запізнілої або повторної роботи.
Читати статтю / 8 хв читання HTMLHTML encoding, decoding і якість текстових даних
Видимі entities часто вказують не на відсутній decode, а на нечітку відповідальність між storage, API, editor і template.
Читати статтю / 8 хв читання JWTТипові помилки безпеки JWT і способи їх уникнути
Більшість проблем JWT виникає через поблажливу перевірку, витік bearer token, слабкий життєвий цикл і надмірну довіру до claims.
Читати статтю / 9 хв читання JWTJWT чи серверна сесія: як вибрати модель автентифікації
JWT і сесії вирішують схожі задачі, але по-різному працюють із revocation, масштабуванням, приватністю та операційною складністю.
Читати статтю / 8 хв читання HTMLЯк contextual output encoding запобігає XSS
Захист від XSS починається з чіткої межі між даними й кодом та encoding для конкретного місця, де browser прочитає значення.
Читати статтю / 9 хв читання TimeЧасові пояси, daylight saving і календарні сюрпризи
Timezone є набором політичних календарних правил, а не постійним offset. Надійний розклад зберігає ідентичність зони й обробляє пропущені та повторені години.
Читати статтю / 8 хв читання URLПомилки URL-кодування, які ламають реальні застосунки
Подвійне кодування, неправильне трактування плюса, небезпечні redirect і різна нормалізація перетворюють звичайні посилання на production-проблеми.
Читати статтю / 8 хв читання UUIDПомилки використання UUID у базах даних та API
UUID прибирає central allocation, але неправильне storage, validation, indexing та authorization перетворюють зручний ID на зайву проблему.
Читати статтю / 8 хв читання Base64Коли не варто використовувати Base64
Base64 корисне на текстових межах, але зайве використання збільшує payload, витрати пам’яті та ризик неправильного розуміння безпеки.
Читати статтю / 8 хв читання HashЧому паролям потрібне спеціальне хешування
Швидкі хеші добре перевіряють файли, але здешевлюють перебір паролів. Безпечне зберігання потребує salt, дорогого алгоритму та плану оновлення параметрів.
Читати статтю / 8 хв читання RegexЯк писати регулярні вирази, які можна підтримувати
Підтримуваний regex має одну відповідальність, явні межі, named groups, приклади, тести та зрозуміле місце в загальному процесі.
Читати статтю / 8 хв читання