Безопасность и авторизацияMiddleТехническое
Типичные HTTP-статусы при ошибках авторизации в API
Краткий ответ
При проблемах с авторизацией чаще всего возвращаются коды 401 Unauthorized и 403 Forbidden. Первый сигнализирует о необходимости аутентификации, второй — о запрете доступа при недостаточных правах.
Развёрнуто
Краткий ответ
При сбоях авторизации веб-сервер возвращает HTTP-коды 401 Unauthorized, если пользователь не прошёл аутентификацию, и 403 Forbidden, когда доступ запрещён из-за отсутствия прав.
Как это работает
В контексте HTTP-протокола авторизация и аутентификация — разные процессы.
401 Unauthorizedозначает, что клиент не предоставил или предоставил неверные учётные данные. Сервер требует их для доступа к ресурсу.403 Forbiddenвозвращается, если пользователь аутентифицирован, но не обладает нужными правами для выполнения действия или просмотра ресурса.
| Код статуса | Значение | Когда используется |
|---|---|---|
| 401 | Неавторизован | Отсутствует или неверный токен/логин |
| 403 | Доступ запрещён | Недостаточно прав, несмотря на авторизацию |
Пример
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="example"
HTTP/1.1 403 Forbidden
Content-Type: application/json
{"error": "Доступ запрещён: недостаточно прав"}
Первый ответ указывает, что клиент должен пройти аутентификацию, второй — что пользователь аутентифицирован, но не имеет доступа.
Что важно знать на собеседовании
- Код 401 требует от клиента повторной аутентификации.
- Код 403 означает, что аутентификация пройдена, но ресурс запрещён.
- Неправильное использование этих кодов ухудшает безопасность и UX.
- Аутентификация и авторизация — разные этапы контроля доступа.
- В API важно корректно дифференцировать эти статусы для отладки и безопасности.
Тема: Безопасность и авторизация | Уровень: middle