✅ Регистрация и верификация жильцов ✅ Рейтинг активности (уровни) ✅ Детект шпионов (Score 0-100) ✅ Анти-мат система (3 предупреждения → бан) ✅ Админ-панель с рассылкой ✅ Учёт квартир (несколько жильцов) ✅ Телефоны экстренных служб и мастеров ✅ Еженедельный экспорт JSON ✅ Прокси (socks5) для обхода РКН Бекап: backups/versions/v1.0_mvp_2026-02-26/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
283 lines
8.7 KiB
Markdown
283 lines
8.7 KiB
Markdown
# 🛡️ Безопасность: Бан, Отзыв верификации, Логирование
|
||
|
||
## ✅ Что добавлено:
|
||
|
||
### 1️⃣ Отзыв верификации (`/unverify`)
|
||
### 2️⃣ Бан / Разбан (`/ban`, `/unban`)
|
||
### 3️⃣ Логирование подозрительных (`/log_spy`)
|
||
### 4️⃣ Авто-удаление через 7 дней
|
||
### 5️⃣ Отдельные логи для шпионов
|
||
|
||
---
|
||
|
||
## 📋 Все команды безопасности
|
||
|
||
| Команда | Описание | Пример |
|
||
|---------|----------|--------|
|
||
| `/unverify <ID> [причина]` | Отозвать верификацию | `/unverify 123456789 Шпион УК` |
|
||
| `/ban <ID> [причина]` | Забанить + удалить из чата | `/ban 123456789 Мат` |
|
||
| `/unban <ID>` | Разбанить | `/unban 123456789` |
|
||
| `/log_spy <ID> [коммент]` | Создать лог подозрительного | `/log_spy 123456789 Странные сообщения` |
|
||
| `/banned` | Список забаненных | `/banned` |
|
||
| `/unverified_list` | С отозванной верификацией | `/unverified_list` |
|
||
| `/check_unverified` | Проверка кто не верифицирован >7 дней | `/check_unverified` |
|
||
|
||
---
|
||
|
||
## 🎯 Сценарий 1: Подозрительный жилец
|
||
|
||
**Проблема:** Жилец ведёт себя подозрительно, возможно шпион УК.
|
||
|
||
**Решение (по шагам):**
|
||
|
||
### Шаг 1: Создаём лог
|
||
```bash
|
||
/log_spy 123456789 Подозрительная активность в пользу УК
|
||
```
|
||
|
||
**Что происходит:**
|
||
- Spy Score увеличивается на 20
|
||
- Создаётся запись в БД
|
||
- **Сохраняется отдельный лог-файл** в `logs/spy_logs/`
|
||
|
||
**Файл лога:**
|
||
```
|
||
logs/spy_logs/123456789_username_20260223_170000.log
|
||
```
|
||
|
||
### Шаг 2: Если подозрения подтвердились — отзываем верификацию
|
||
```bash
|
||
/unverify 123456789 Подозрение на шпиона УК
|
||
```
|
||
|
||
**Что происходит:**
|
||
- Пользователь становится `verified=False`
|
||
- Ему отправляется уведомление в личку
|
||
- **Даётся 7 дней** на повторную верификацию
|
||
- Админ получает подтверждение
|
||
|
||
**Пользователь получает:**
|
||
```
|
||
⚠️ Верификация отозвана
|
||
|
||
Причина: Подозрение на шпиона УК
|
||
|
||
❗ Что дальше:
|
||
У вас есть 7 дней на повторную верификацию.
|
||
Если не пройдёте верификацию — будете удалены из чата.
|
||
|
||
Для верификации напишите боту номер квартиры в личку.
|
||
```
|
||
|
||
### Шаг 3: Если не верифицировался за 7 дней — авто-удаление
|
||
|
||
**Бот автоматически:**
|
||
- Проверяет каждый день в 03:00
|
||
- Находит кто не верифицирован >7 дней
|
||
- **Удаляет из чата**
|
||
- Помечает `is_banned=True`
|
||
- Уведомляет админа
|
||
|
||
**Админ получает:**
|
||
```
|
||
🗑️ Пользователь удалён из чата
|
||
|
||
Пользователь: Иван Иванов
|
||
Квартира: 45
|
||
Причина: Не прошёл верификацию за 7 дней
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 Сценарий 2: Грубое нарушение (мат, спам)
|
||
|
||
**Проблема:** Пользователь нарушает правила чата.
|
||
|
||
**Решение:**
|
||
```bash
|
||
/ban 123456789 Мат и оскорбления
|
||
```
|
||
|
||
**Что происходит:**
|
||
- `is_banned=True` в БД
|
||
- Бот **пытается удалить из чата** (нужны права админа!)
|
||
- Если не удалось — админ получает уведомление удалить вручную
|
||
|
||
**Если нужно удалить вручную:**
|
||
1. Зайди в чат
|
||
2. Найди пользователя
|
||
3. Удали через интерфейс Telegram
|
||
|
||
---
|
||
|
||
## 🎯 Сценарий 3: Ошибка, пользователь не шпион
|
||
|
||
**Проблема:** Отозвали верификацию, но пользователь не шпион.
|
||
|
||
**Решение:**
|
||
|
||
### Вариант А: Просто верифицируем заново
|
||
Пользователь пишет боту в личку: `45`
|
||
Админ подтверждает: `/verify_approve 123456789`
|
||
|
||
### Вариант Б: Разбан (если был забанен)
|
||
```bash
|
||
/unban 123456789
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 Логи подозрительных
|
||
|
||
### Где хранятся:
|
||
```
|
||
/home/matrixhasyou/domovoy_bot/logs/spy_logs/
|
||
```
|
||
|
||
### Имя файла:
|
||
```
|
||
{user_id}_{username}_{дата}.log
|
||
```
|
||
|
||
**Пример:**
|
||
```
|
||
123456789_ivanov_20260223_170000.log
|
||
```
|
||
|
||
### Что внутри:
|
||
```
|
||
=== ЛОГ ПОДОЗРИТЕЛЬНОЙ АКТИВНОСТИ ===
|
||
Дата: 23.02.2026 17:00
|
||
Пользователь: Иван Иванов
|
||
ID: 123456789
|
||
Username: @ivanov
|
||
Квартира: 45
|
||
Spy Score: 65/100
|
||
|
||
Комментарий админа:
|
||
Подозрительная активность в пользу УК
|
||
|
||
=== История сообщений (последние 50) ===
|
||
(см. в основном экспорте)
|
||
|
||
=== Статус ===
|
||
Верифицирован: Нет
|
||
Забанен: Нет
|
||
```
|
||
|
||
---
|
||
|
||
## ⏰ Автоматические проверки
|
||
|
||
### Ежедневно в 02:00 — Проверка шпионов
|
||
- Анализирует Spy Score
|
||
- При score > 60 — уведомление админу
|
||
|
||
### Ежедневно в 03:00 — Проверка неверифицированных
|
||
- Находит кто не верифицирован >7 дней
|
||
- **Удаляет из чата автоматически**
|
||
- Уведомляет админа
|
||
|
||
---
|
||
|
||
## 🧪 Тестирование
|
||
|
||
### Тест 1: Отзыв верификации
|
||
|
||
1. **С второго аккаунта** верифицируйся: `100`
|
||
2. **Админ получает** уведомление
|
||
3. **Админ подтверждает:** `/verify_approve <ID>`
|
||
4. **Админ отзывает:** `/unverify <ID> Тест`
|
||
5. **Пользователь получает** уведомление о 7 днях
|
||
|
||
### Тест 2: Проверка авто-удаления
|
||
|
||
**Для быстрого теста** (не ждать 7 дней):
|
||
|
||
1. В БД вручную измени `verification_date` на 8 дней назад:
|
||
```sql
|
||
UPDATE users SET verification_date=datetime('now', '-8 days') WHERE user_id=123456789;
|
||
```
|
||
|
||
2. Запусти проверку:
|
||
```bash
|
||
/check_unverified
|
||
```
|
||
|
||
3. Бот покажет список на удаление
|
||
|
||
### Тест 3: Логирование
|
||
|
||
1. Создай лог:
|
||
```bash
|
||
/log_spy 123456789 Тестовая запись
|
||
```
|
||
|
||
2. Проверь файл:
|
||
```bash
|
||
ls -la logs/spy_logs/
|
||
cat logs/spy_logs/*_123456789_*.log
|
||
```
|
||
|
||
---
|
||
|
||
## 💡 Золотой сценарий для шпиона
|
||
|
||
```
|
||
1. /log_spy 123456789 Странные сообщения в пользу УК
|
||
→ Spy Score +20, лог сохранён
|
||
|
||
2. /spies
|
||
→ Проверяешь что score стал >60
|
||
|
||
3. /unverify 123456789 Подозрение на шпиона
|
||
→ Верификация отозвана, дано 7 дней
|
||
|
||
4. Ждёшь 7 дней
|
||
→ Если не верифицировался:
|
||
|
||
5. Бот автоматически удаляет в 03:00
|
||
→ Админ получает уведомление
|
||
```
|
||
|
||
**Всё приватно!** Никто в группе не видит.
|
||
|
||
---
|
||
|
||
## 📊 Мониторинг
|
||
|
||
### Посмотреть забаненных:
|
||
```bash
|
||
/banned
|
||
```
|
||
|
||
### Посмотреть с отозванной верификацией:
|
||
```bash
|
||
/unverified_list
|
||
```
|
||
|
||
### Проверить кто не верифицирован >7 дней:
|
||
```bash
|
||
/check_unverified
|
||
```
|
||
|
||
### Посмотреть логи шпионов:
|
||
```bash
|
||
ls -la logs/spy_logs/
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Преимущества
|
||
|
||
| Было | Стало |
|
||
|------|-------|
|
||
| Нельзя отозвать верификацию | `/unverify` — отзыв с причиной |
|
||
| Нет банов | `/ban` — бан + удаление |
|
||
| Нет логов подозрительных | Отдельные логи в `logs/spy_logs/` |
|
||
| Ручное удаление | **Авто-удаление через 7 дней** |
|
||
| Не видно кто не верифицирован | `/unverified_list` — полный список |
|
||
|
||
---
|
||
|
||
**Теперь полная безопасность дома!** 🛡️🚀
|