feat(app): add diagnostics and update runtime
This commit is contained in:
88
docs/SECURITY_TRIAGE.md
Normal file
88
docs/SECURITY_TRIAGE.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Security triage
|
||||
|
||||
Дата последнего triage: 2026-06-06
|
||||
|
||||
Этот файл фиксирует текущий статус `npm audit`, принятые решения по
|
||||
dependency-upgrade и минимальные правила перед релизом. Он не заменяет
|
||||
регулярное обновление зависимостей: цель в том, чтобы не терять контекст между
|
||||
релизами и отличать runtime-риск от build-chain риска.
|
||||
|
||||
## Текущий статус
|
||||
|
||||
`npm run verify` выполняет:
|
||||
|
||||
- typecheck;
|
||||
- tests;
|
||||
- lint;
|
||||
- build;
|
||||
- audit summary.
|
||||
|
||||
Наблюдаемый audit snapshot после upgrade:
|
||||
|
||||
- 0 vulnerabilities;
|
||||
- `npm run verify` проходит полностью;
|
||||
- `npm run dist:dir` собирает unpacked Windows build.
|
||||
|
||||
## Выполненные обновления
|
||||
|
||||
- `electron` обновлен до `42.3.3`;
|
||||
- `electron-builder` обновлен до `26.15.0`;
|
||||
- `electron-vite` обновлен до `5.0.0`;
|
||||
- `vite` обновлен до `7.3.5`;
|
||||
- `@vitejs/plugin-react` обновлен до `5.2.0`;
|
||||
- `electron-updater` обновлен до `6.8.9`;
|
||||
- `esbuild` обновлен до `0.28.0`.
|
||||
|
||||
`vite` оставлен на major 7, а не поднят до 8, потому что актуальный
|
||||
`electron-vite@5.0.0` объявляет peer range `^5.0.0 || ^6.0.0 || ^7.0.0`.
|
||||
Переход на Vite 8 стоит делать отдельным шагом после совместимого релиза
|
||||
`electron-vite`.
|
||||
|
||||
## Runtime baseline
|
||||
|
||||
Electron является runtime-платформой приложения, поэтому его audit-риск был
|
||||
самым важным. После обновления runtime-риск из audit закрыт, но перед релизом
|
||||
все равно нужен ручной smoke test Electron-поведения.
|
||||
|
||||
Текущие mitigations:
|
||||
|
||||
- `sandbox: true`;
|
||||
- `contextIsolation: true`;
|
||||
- `nodeIntegration: false`;
|
||||
- строгий preload API через `contextBridge`;
|
||||
- IPC runtime validation;
|
||||
- CSP в renderer `index.html`;
|
||||
- allowlist для внешних URL;
|
||||
- deny-by-default permission handlers;
|
||||
- запрет `webview` attach;
|
||||
- renderer error/unhandled rejection reporting в main logs.
|
||||
|
||||
## Build-chain baseline
|
||||
|
||||
`electron-builder`, `electron-vite`, `vite` и `esbuild` обновлены отдельным
|
||||
шагом от runtime upgrade. `npm run dist:dir` подтверждает, что packaged build
|
||||
создается после обновления build-chain.
|
||||
|
||||
Перед публикацией installer все равно нужно проверить:
|
||||
|
||||
- NSIS installer build через `npm run dist`;
|
||||
- запуск установленного приложения;
|
||||
- сохранение данных в `%APPDATA%\Exercise Reminder\`;
|
||||
- auto-update metadata и `update-channel`;
|
||||
- импорт/экспорт данных;
|
||||
- tray behavior;
|
||||
- main window и reminder window;
|
||||
- Dota 2 GSI install/uninstall и callback listener.
|
||||
|
||||
## Release rule
|
||||
|
||||
Перед релизом:
|
||||
|
||||
- `npm run verify`;
|
||||
- `npm run dist`;
|
||||
- smoke test installed app;
|
||||
- проверка `update-channel`;
|
||||
- повторный `npm audit`.
|
||||
|
||||
Если новый audit снова сообщает high runtime issue, релиз нужно считать
|
||||
blocked, пока риск не разобран отдельно.
|
||||
Reference in New Issue
Block a user