feat: Secure SMS verification with Redis (Predis)
- Added Predis library for Redis connection (no PHP extension required) - Server-side SMS code generation and storage in Redis - Rate limiting and brute-force protection - Integration with n8n webhook for SMS sending - Environment variables moved to .env file - Fixed policy verification endpoint - Added file-based fallback if Redis unavailable
This commit is contained in:
53
POLICY_CHECK_FIX.md
Normal file
53
POLICY_CHECK_FIX.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Исправление проверки полиса
|
||||
|
||||
## Проблемы, которые были исправлены:
|
||||
|
||||
1. ✅ **Хардкод кредов MySQL** - теперь используются переменные из `.env`
|
||||
2. ✅ **Отсутствие логирования** - добавлено логирование в `logs/policy_check.log`
|
||||
3. ✅ **Улучшена обработка ошибок** - более детальные сообщения об ошибках
|
||||
4. ✅ **Нормализация номера полиса** - добавлена замена кириллической "А" на латинскую "A"
|
||||
5. ✅ **Заголовки JSON** - добавлены правильные заголовки для JSON ответов
|
||||
|
||||
## Что нужно добавить в .env:
|
||||
|
||||
Добавьте следующие переменные в `.env` файл (если их еще нет):
|
||||
|
||||
```env
|
||||
# MySQL ERV (для проверки полисов)
|
||||
MYSQL_ERV_HOST=localhost
|
||||
MYSQL_ERV_USER=ci20465_erv
|
||||
MYSQL_ERV_PASSWORD=c7vOXbmG
|
||||
MYSQL_ERV_DB=ci20465_erv
|
||||
```
|
||||
|
||||
Если переменные не указаны, используются значения по умолчанию (для обратной совместимости).
|
||||
|
||||
## Как работает проверка полиса:
|
||||
|
||||
1. Пользователь вводит номер полиса
|
||||
2. Нажимает кнопку "Проверить наличие полиса"
|
||||
3. JavaScript отправляет AJAX запрос на `database.php?action=user_verify`
|
||||
4. `database.php`:
|
||||
- Подключается к БД MySQL (ci20465_erv)
|
||||
- Ищет полис в таблице `lexrpiority` по полю `voucher`
|
||||
- Проверяет тарифы (должны быть в списке валидных)
|
||||
- Возвращает результат
|
||||
|
||||
## Логирование:
|
||||
|
||||
Все операции логируются в `logs/policy_check.log`:
|
||||
- Попытки подключения к БД
|
||||
- Номера полисов (частично, для безопасности)
|
||||
- Результаты проверки
|
||||
- Ошибки
|
||||
|
||||
## Проверка работы:
|
||||
|
||||
1. Откройте форму
|
||||
2. Введите номер полиса
|
||||
3. Нажмите "Проверить наличие полиса"
|
||||
4. Проверьте логи: `tail -f logs/policy_check.log`
|
||||
|
||||
## Статус:
|
||||
|
||||
✅ **Исправлено и готово к использованию!**
|
||||
Reference in New Issue
Block a user