Files
erv-ticket-dev/CHANGELOG_SMS.md

97 lines
3.7 KiB
Markdown
Raw Permalink Normal View History

# Изменения в 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`) работает как прокси для обратной совместимости.