- IDOR: отмена/редактирование брони только владельцем (проверка user_id) - пароль админа: убран дефолт admin123, обязателен из env; сравнение через hmac.compare_digest; TTL сессии 1ч - callback_data: безопасный парсинг int + .get() вместо прямого индексирования (KeyError/ValueError)
36 lines
797 B
Python
36 lines
797 B
Python
import os
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
BOT_TOKEN = os.getenv("BOT_TOKEN")
|
|
ADMIN_PASSWORD = os.getenv("ADMIN_PASSWORD")
|
|
|
|
if not BOT_TOKEN:
|
|
raise ValueError("BOT_TOKEN not found in environment")
|
|
|
|
if not ADMIN_PASSWORD:
|
|
raise ValueError("ADMIN_PASSWORD not found in environment (no default allowed)")
|
|
|
|
# Services catalog
|
|
SERVICES = {
|
|
"service_massage": "💪 Массаж",
|
|
"service_spa": "🎈 SPA",
|
|
"service_cosmetology": "💄 Косметология",
|
|
}
|
|
|
|
# Masters list
|
|
MASTERS = {
|
|
"master_anna": "👸 Анна",
|
|
"master_maria": "💃 Мария",
|
|
"master_alex": "🧑⚖️ Алексей",
|
|
}
|
|
|
|
# Available time slots
|
|
TIME_SLOTS = [
|
|
"09:00", "10:00", "11:00",
|
|
"12:00", "13:00", "14:00",
|
|
"15:00", "16:00", "17:00",
|
|
"18:00",
|
|
]
|