IDOR — это когда сервер закрыл доступ для незалогиненных, но забыл спросить «а это вообще твоё?». На Хабре вышла статья, где автор несколько месяцев писал ядро для Python, которое ищет такие дыры статическим анализом: не эвристикой, а через связь user id → объект → проверка авторизации.
Почему это важно. Базовый DAST такие дыры пропускает, особенно на жёстком SPA с плохим краулером. Semgrep, по его же цифрам, детерминированными правилами задачу не закрывает: агент с LLM даёт 61% точности против 22% у чистого LLM, при этом 88% находок последнего — ложные. CodeQL умеет межпроцедурный анализ, но классическая схема source→sink выражает «данные дошли», а IDOR — вопрос об отсутствии доминирующей проверки. Guardmarly, как разбирает автор, проверяет защиту булевым флагом по всей функции и засчитывает в том числе проверки в мёртвых ветках.
Отдельная мысль: UUID вместо инкрементного id и rate-limit — не защита. Они усложняют перебор, но дыру не закрывают — нужна проверка прав на стороне сервера.
#IDOR #AppSec #Python #СтатическийАнализ



