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