Delete page "Security"
41
Security.md
41
Security.md
@@ -1,41 +0,0 @@
|
||||
# Безопасность
|
||||
|
||||
## Аудит — апрель 2026
|
||||
|
||||
### Исправленные уязвимости
|
||||
|
||||
#### 1. Pug Template Injection (CRITICAL → FIXED)
|
||||
Пользовательский текст `#{process.cwd()}` выполнялся на сервере при Pug-рендере.
|
||||
**Фикс:** Экранирование `#{` и `!{` в пользовательском pug перед записью.
|
||||
|
||||
#### 2. XSS через iframe превью (HIGH → FIXED)
|
||||
`<script>alert('XSS')</script>` в 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
|
||||
Reference in New Issue
Block a user