fix(share-ai): fail-closed workspace limiter + lower default cap (RT-6.3) #62
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Источник: red-team-аудит, RT-6.0/6.3 (
docs/red-team-report.md).Модель угроз: анонимный ассистент снаружи; per-workspace cap — главная страховка по деньгам.
Что происходит
apps/server/src/core/ai-chat/public-share-workspace-limiter.tsрежет 300 запросов/час на воркспейс (SHARE_AI_WORKSPACE_MAX_PER_WINDOW, envSHARE_AI_WORKSPACE_MAX_PER_HOUR). Но при недоступности Redis лимитер fail-open (:131 return true) — то есть «Redis упал = потолок исчез, безлимит». Это единственный сценарий, где счёт уходит в бесконечность.Фикс
Фича опциональная, недоступность безболезненна → перевести в fail-closed:
Заодно опустить дефолтный часовой cap под реальную нагрузку (напр.
SHARE_AI_WORKSPACE_MAX_PER_HOUR=100).Цена / приоритет
1 строка (поменять
return true→return false) + обновить комментарий, который сейчас обосновывает fail-open.