# 🛡️ Безопасность: Бан, Отзыв верификации, Логирование ## ✅ Что добавлено: ### 1️⃣ Отзыв верификации (`/unverify`) ### 2️⃣ Бан / Разбан (`/ban`, `/unban`) ### 3️⃣ Логирование подозрительных (`/log_spy`) ### 4️⃣ Авто-удаление через 7 дней ### 5️⃣ Отдельные логи для шпионов --- ## 📋 Все команды безопасности | Команда | Описание | Пример | |---------|----------|--------| | `/unverify [причина]` | Отозвать верификацию | `/unverify 123456789 Шпион УК` | | `/ban [причина]` | Забанить + удалить из чата | `/ban 123456789 Мат` | | `/unban ` | Разбанить | `/unban 123456789` | | `/log_spy [коммент]` | Создать лог подозрительного | `/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 ` 4. **Админ отзывает:** `/unverify Тест` 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` — полный список | --- **Теперь полная безопасность дома!** 🛡️🚀