# Изменения в SMS верификации ## Дата: 2025-01-14 ### ✅ Выполнено 1. **Создан новый безопасный API** (`sms-verify.php`) - Генерация кода на сервере (не на клиенте) - Хранение кодов в Redis с TTL 10 минут - Серверная проверка кода - Rate limiting: 5 SMS в час на номер - Защита от брутфорса: блокировка после 10 попыток на 15 минут - Использование кредов из `.env` 2. **Создана утилита для загрузки .env** (`env_loader.php`) - Автоматическая загрузка переменных из `.env` - Функция `env()` для получения значений 3. **Обновлен JavaScript** (`js/common.js`) - Функция `send_sms()` теперь использует новый API - Проверка кода выполняется на сервере - Добавлен обработчик для повторной отправки SMS 4. **Обновлен старый API** (`sms-test.php`) - Теперь работает как прокси к новому API - Обеспечивает обратную совместимость ### 📁 Новые файлы - `env_loader.php` - утилита для загрузки .env - `sms-verify.php` - новый безопасный API - `SMS_VERIFICATION_README.md` - документация ### 🔄 Измененные файлы - `sms-test.php` - переписан как прокси - `js/common.js` - обновлен для использования нового API ### 🔐 Безопасность **До:** - ❌ Код генерировался на клиенте (JavaScript) - ❌ Код хранился в переменной JavaScript - ❌ Проверка кода только на клиенте - ❌ Креды в открытом виде в коде - ❌ Нет защиты от брутфорса - ❌ Нет rate limiting **После:** - ✅ Код генерируется на сервере - ✅ Код хранится в Redis - ✅ Проверка кода на сервере - ✅ Креды в `.env` файле - ✅ Защита от брутфорса (10 попыток → блокировка) - ✅ Rate limiting (5 SMS/час) ### 📊 Используемые переменные из .env ``` SMS_API_URL=https://online.sigmasms.ru/api/ SMS_LOGIN=kfv.advokat@gmail.com SMS_PASSWORD=s7NRIb SMS_TOKEN=27f89492e00973263ff746a655663678fae7203bac8b62919700e489e33b3902 SMS_SENDER=Clientright REDIS_HOST=crm.clientright.ru REDIS_PORT=6379 REDIS_PASSWORD=CRM_Redis_Pass_2025_Secure! ``` ### 🚀 Endpoints **Новый API (рекомендуется):** - `POST /sms-verify.php?action=send` - Отправка SMS - `POST /sms-verify.php?action=verify` - Проверка кода - `POST /sms-verify.php?action=check_verified` - Проверка статуса **Старый API (для обратной совместимости):** - `POST /sms-test.php` - Прокси к новому API ### 📝 Логи Все операции логируются в: - `logs/sms_verify.log` ### ✅ Проверка Все файлы проверены на синтаксические ошибки: - ✅ `sms-verify.php` - OK - ✅ `sms-test.php` - OK - ✅ `env_loader.php` - OK ### 🎯 Статус **Готово к использованию!** JavaScript уже использует новый API (`sms-verify.php`), старый API (`sms-test.php`) работает как прокси для обратной совместимости.