Files
contracts/History/topics/event-sourcing-security-fixes.md
T

1.6 KiB

Исправление уязвимостей Event Sourcing — по шагам

Дата: 2026-06-22 Источники: Gemini Web + Sonnet анализ Итог: все 11 шагов + доп. фиксы выполнены, v1.0.107, сравнение работает.

Выполненные шаги

Шаг Версия Что Файл
1 v1.0.92 SQL-инъекция — валидация UUID convert_server.py
2 Race condition — FOR UPDATE (убран v1.0.100) apply_events.cfm
3 v1.0.94 full_replace guard apply_events.cfm
4 v1.0.104 Идемпотентность + reset_contract.cfm apply_events.cfm
5 v1.0.97 LLM ключ из env convert_server.py
6 v1.0.98 elements_json double-decode convert_server.py
7 v1.0.99 isNumeric валидация apply_events.cfm
8 v1.0.101 Batch SELECT UPDATE apply_events.cfm
9 v1.0.102 UNRESOLVED вместо cfthrow apply_events.cfm
10 v1.0.103 Массовый INSERT full_replace apply_events.cfm
11 UUID тип — отменён (cf_sql_char ломает PG) apply_events.cfm

Доп. фиксы

Версия Что
v1.0.104 reset_contract.cfm
v1.0.105 Проверка ответа reset
v1.0.106 Запятая в ADD VALUES
v1.0.107 cf_sql_varchar (UUID cast)

Статус

  • v1.0.107 — работает. Summary +N ~N -N ?N. Накопление ОК.
  • ⚠️ UPDATE/DELETE без имён в UI (отдельно)
  • ⚠️ FOR UPDATE убран (нужен SEQUENCE)