Веб-версияОткрыть в Telegram

ПостОпасные места в YAML

23 сентября 2025
П
Павел Иванов
Опасные места в YAML YAML позиционируется как человекочитаемый формат данных, но при этом это склад подводных камней. Рассмотрим самые тупые особенности, которые могут привести к неожиданным ошибкам. Шестидесятеричные числа port_mapping: - 22:22 - 80:80 - 443:443 Что вы ожидаете увидеть? Скорее всего, список строк для настройки портов. Но YAML 1.1 интерпретирует 22:22 как шестидесятеричное число и превращает его в 1342. В YAML 1.2 эту "фичу" убрали, но многие парсеры до сих пор используют старую версию. Проблема Норвегии countries: - dk - fi - is - no - se Код страны Норвегии no будет интерпретирован как булево значение false. То же самое произойдет с off, n, yes, on, y в различных вариантах написания. Классическая ловушка, получившая название "Norway Problem". Случайные числа versions: - 9.5.25 # строка - 9.6.24 # строка - 10.23 # Число! - 12.13 # Тоже число! Строки без кавычек могут неожиданно стать числами. 10.23 превратится в float, а 9.5.25 останется строкой, потому что имеет "слишком много" точек. Ключи не только строки settings: on: [push, deploy] priority: high Здесь on интерпретируется как булево true, поэтому ключом становится не строка "on", а логическое значение. В JSON это может превратиться в "True" или вызвать ошибку. Теги и небезопасность user_data: !python/object/apply:subprocess.check_output [['rm', '-rf', '/']] Теги, говорят, иногда полезны, но при определенных условиях позволяют выполнять произвольный код при загрузке. Всегда используйте safe_load вместо load в Python и аналогичные безопасные методы в других языках.
6 · 510 ·

Рядом в ленте

ППавел Ивановhttps://habr.com/ru/companies/flant/articles/917680/ППавел ИвановПых.Конф всё ближе, свободного времени всё меньше, поэтому с постами пока затык Раз так — буду шарить полезное от коллег. Сегодня нововведения и изменения в нед
это сообщение
ППавел ИвановПолучил свой первый сертификат по кубу. Теперь я сертифицированный кубовод)ППавел ИвановПривет! Коллеги проводят исследование, чтобы понять, что реально происходит внутри ИТ-команд и какие закономерности можно в этом увидеть. Уже нащупаны интересны
ДДевопсолог | DevOps, GitOps и прочий OpsДевопсолог | DevOps, GitOps и прочий Ops@DevOpsologist · канал · Технологии
271подписчиков161средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем