Аудит: пункт 2 решён селективным garble (пакет fsql)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
This commit is contained in:
zuevav
2026-09-18 20:30:00 +03:00
parent 7ce4c2c79f
commit cdbeb15730
+17
View File
@@ -160,3 +160,20 @@ garble не видит, т.к. `Execute` принимает `any`).
Тулчейн go1.26.8 и garble установлены в `~/sdk` и `~/go/bin` — если выберете B, Тулчейн go1.26.8 и garble установлены в `~/sdk` и `~/go/bin` — если выберете B,
среда готова. среда готова.
### Пункт 2 — РЕШЕНО через селективный garble (коммит 7ce4c2c)
Прямой garble ломает html/template, но `GOGARBLE` позволяет обфусцировать
только выбранный пакет. Весь чувствительный SQL (95 запросов к DEPO/SPECTRE/
QUIK и таблицам FTV_M2M) вынесен в `internal/lkgateway/fsql` как `var`-строки
(не const — иначе компилятор инлайнит их обратно в необфусцируемый код).
`build-release.sh` собирает bj-server c `GOGARBLE=.../fsql garble -literals`
(нужен SDK go1.26 в `~/sdk/go1.26.8` + garble в `~/go/bin`; иначе обычная
сборка с предупреждением). Шаблоны/обработчики не затронуты.
Проверено на garble-бинаре: рецепт чтения чужих систем из бинаря исчез —
`OD_RESTS`, `OD_WIRING`, `OD_TURNS`, `OD_BALANCES`, `D_B_CONTRACTS`,
`OD_CLIENTS_PORTS`, `DepoLimits`, `MoneyLimits` → 0. Приложение работает.
Остаётся сделать при желании (тем же приёмом fsql-var): format-строки и
логи с именами FTV_M2M (протокол Fancy — видно, что таблицы есть, но не
рецепт), и вынести имена таблиц из операторских embed-шаблонов справки.