5.2 KiB
5.2 KiB
Устранение замечаний аудита 2026-09-18
Исходный отчёт проверял ревизию 14ed610. Исправления подготовлены после b88ff91.
Исправлено
- №1–5: регистрация отпечатка отменяется при блокировке, смене сотрудника и через 60 секунд; повторный палец отклоняется; поток захвата корректно завершается; связь контролируется и восстанавливается автоматически.
- №2–3, №27: повреждённое состояние обрабатывается fail-closed, ведутся три резервные копии, записи сериализованы и принудительно сбрасываются на диск, фоновые ошибки журналируются,
crash.logротируется. - №6–8: роли мигратора и приложения разделены; runtime-роль имеет
NOSUPERUSER NOBYPASSRLS; пароли согласованы; мигратор используетschema_migrations, advisory lock и откатывает только последнюю миграцию после явного подтверждения. - №9–12: отметка обычного сотрудника не теряется при открытом диалоге администратора; PIN усилен и защищён задержкой; второй экземпляр перенаправляет активацию первому; дубликат пальца запрещён.
- №13–14: журнал экспортируется в CSV, имеет ограничение размера и восстановимые резервные копии; уход после полуночи определяется по настраиваемой максимальной длительности смены.
- №15–20: readiness возвращает
503без деталей; маршруты соответствуют/api/v1/staff; OpenAPI сравнивается с runtime; пул БД обрабатывает ошибки; добавлен реальный RLS-тест двух tenant; audit log доступен runtime только на чтение/добавление; outbox хранит subject/actor; Redis-зависимости удалены до появления сценария. - №21–23, №25–29, №31–33: автозапуск открывает приложение в трее и не сохраняет Debug-путь; новый профиль не включает автозагрузку без решения администратора; защита последнего администратора исправлена; PIN совместим со старыми значениями; публичные имена по умолчанию маскируются; проект только x64; manifest очищен; correlation ID проверяется как ULID; версия синхронизируется проверкой; graceful shutdown имеет таймаут; standalone запрещён в production; базовые Docker-образы закреплены digest.
- npm-зависимости обновлены:
npm auditсообщает 0 уязвимостей. Форматирование включено в CI.
Осознанно сохранено
- №24: повторная авторизация перед удалением отпечатков, сотрудников и журнала сохранена по прямому требованию владельца.
- №30: EULA ZKTeco добавлена рядом с DLL. Автоматическая Windows-сборка и подпись требуют Windows runner и сертификат подписи; этих ресурсов в текущем Forgejo окружении нет.
Требует решения владельца, не является локальным исправлением кода
- A1: окончательный контракт терминала как edge-клиента Staff и серверная синхронизация вместо постоянного локального source of truth.
- A2: письменные согласия на биометрию, сроки хранения, правовое основание передачи уведомлений и политика трансграничной передачи должны быть утверждены с юристом.
Проверка
npm run check— пройдено.npm run format:check— пройдено.npm audit --audit-level=moderate— 0 уязвимостей.dotnet build apps/KronaStaffTerminal/KronaStaffTerminal.csproj -c Release -p:Platform=x64— 0 ошибок и 0 предупреждений.- PostgreSQL/Docker up/down и реальный RLS-тест добавлены в CI, но локально не запускались: Docker и PostgreSQL на машине разработки отсутствуют.