6 подписчиков
Ломаем логику: что такое IDOR и как его не допустить в вашем API? 💥
Есть уязвимость, которая не ломает код, а обходит логику. Это IDOR (Insecure Direct Object Reference).
Суть: Приложение дает доступ к данным по их ID, не проверяя права текущего пользователя. Пример: запрос GET /api/invoices/100 вернет накладную, если она есть. Но чью? Если пользователь поменяет 100 на 101 и получит чужую — это IDOR.
Уязвимый код (зло):
transaction = Transaction.query.get(requested_id) // Нашел и отдал
Исправление (добро):
transaction = Transaction.query.filter_by(id=requested_id, user_id=current_user.id).first() // Нашел и проверил
Суть защиты: Всегда проверяйте, принадлежит ли запрашиваемый объект (файл, запись) тому, кто его запросил. Не доверяйте клиенту!
🔥Скоро выйдет большая статья (через 10 минут)
#безопасность #api #разработка #программирование #хойкинг
Около минуты
2 октября 2025