Найти в Дзене
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 #разработка #программирование #хойкинг
Ломаем логику: что такое IDOR и как его не допустить в вашем API? 💥  Есть уязвимость, которая не ломает код, а обходит логику. Это IDOR (Insecure Direct Object Reference).
Около минуты