Broken Access Control

Отсутствие или ошибки проверок прав позволяют пользователю выполнять чужие действия.

СигнатураBroken Access Control

Broken Access Control (нарушение контроля доступа) — категория №1 в OWASP Top 10. Возникает, когда сервер не проверяет, имеет ли пользователь право на запрошенное действие или ресурс.

Как защититься: проверяйте права на сервере для каждого запроса (а не только скрывайте кнопки в UI), применяйте принцип «запрещено по умолчанию», централизуйте логику авторизации, покрывайте права тестами.

# Опасно: эндпоинт не проверяет владельца
def delete_post(post_id):
    db.delete_post(post_id)

# Безопасно: проверка прав на сервере
def delete_post(user, post_id):
    post = db.get_post(post_id)
    if post.author_id != user.id and not user.is_admin:
        raise Forbidden("Нет прав на удаление")
    db.delete_post(post_id)
← Все записи: Веб-уязвимости и защита
Поддержать проект