Privilege Escalation (повышение привилегий)

Получение пользователем прав выше положенных — например обычным юзером прав администратора.

СигнатураPrivilege Escalation

Повышение привилегий — это получение прав, которые пользователю не положены. Горизонтальное — доступ к данным равного пользователя; вертикальное — получение прав администратора. Часто возникает из-за доверия к полям запроса, задающим роль.

Как защититься: никогда не принимайте роль или флаг прав от клиента, храните и проверяйте права только на сервере, применяйте принцип наименьших привилегий, ведите аудит изменений ролей.

# Опасно: роль приходит из запроса
def update_profile(data):
    user.role = data.get("role")  # клиент пришлёт role=admin

# Безопасно: роль меняется только проверенным админом
def set_role(actor, target, role):
    if not actor.is_admin:
        raise Forbidden("Только администратор")
    target.role = role
← Все записи: Веб-уязвимости и защита
Поддержать проект