fix(utf8): закрыть lossy-границы конфигурации и API

This commit is contained in:
2026-09-07 17:25:27 +05:00
parent ab788725cf
commit af9f476658
38 changed files with 759 additions and 159 deletions
+10
View File
@@ -8,6 +8,16 @@
## [Unreleased]
Очередной hardening-проход закрывает границу кодировок. Оркестратор теперь
читает конфигурацию и секреты как байты с fatal UTF-8 decoding, сохраняет BOM
как U+FEFF до явного транспортного отказа и проверяет исходный EnvironmentFile
до разбора ключей. HTTP API до `encoding/json` отвергает повреждённый UTF-8 и
непарные UTF-16 surrogate escape, поэтому вход или импорт больше не могут
молча превратиться в другое значение через U+FFFD. Diagnostics сначала
санитизирует данные в памяти и никогда не кладёт сырые env/YAML/journal во
временный каталог. U+FEFF во всех слоях отнесён к документированному домену
systemd, а управляющие `Cc` — к политике HY2XS.
Hardening-проход перед релизом `1.0.0`. Основная тема — сделать политику
«только чистая установка» настоящим системным инвариантом, а не строчкой в
документации.