diff --git a/Security.md b/Security.md deleted file mode 100644 index a194ef2..0000000 --- a/Security.md +++ /dev/null @@ -1,41 +0,0 @@ -# Безопасность - -## Аудит — апрель 2026 - -### Исправленные уязвимости - -#### 1. Pug Template Injection (CRITICAL → FIXED) -Пользовательский текст `#{process.cwd()}` выполнялся на сервере при Pug-рендере. -**Фикс:** Экранирование `#{` и `!{` в пользовательском pug перед записью. - -#### 2. XSS через iframe превью (HIGH → FIXED) -`` в HTML письма выполнялся в iframe. -**Фикс:** `sandbox="allow-same-origin"` на iframe. Click detection без инъекции скриптов. - -#### 3. FTP Path Traversal (HIGH → FIXED) -`folder: "../../"` позволял доступ к любой директории FTP-сервера. -**Фикс:** Валидация `folder` — запрет `..` и абсолютных путей. - -#### 4. Незащищённые настройки (HIGH → FIXED) -Любой юзер мог менять FTP-креды, feedUrl, Yonote-токен. -**Фикс:** Проверка `role === 'admin'` на PUT settings и PUT config. - -#### 5. SSRF (MEDIUM → FIXED) -`isPublicUrl()` пропускал IPv6, hex IP, `0.0.0.0`. -**Фикс:** Расширенная валидация URL. - -#### 6. Render DoS (MEDIUM → FIXED) -Неограниченные параллельные рендеры. -**Фикс:** `MAX_CONCURRENT_RENDERS = 3`, `try/finally`. - -#### 7. Info Disclosure (LOW → FIXED) -Stderr от рендера возвращался юзеру. -**Фикс:** Статическое сообщение об ошибке. - -### Nginx -Блокировка сканеров: `.env`, `.git`, `.php`, `passwd`, `wp-admin` и т.п. → return 444. - -### Рекомендации -- Регулярные бэкапы `data/` -- Обновление Node.js зависимостей -- Мониторинг uptime