Ответ
HTTP статус-код 403 Forbidden означает, что сервер понял запрос, но отказывается его авторизовать. В отличие от кода 401 Unauthorized, который требует аутентификации, здесь доступ запрещен навсегда для текущего контекста — даже при успешном входе в систему.
Ключевое отличие:
- 401 Unauthorized: "Я не знаю, кто ты. Представься."
- 403 Forbidden: "Я знаю, кто ты, но у тебя нет прав на это действие."
Типичные причины:
- Недостаточные права пользователя: Попытка доступа обычного пользователя к админ-панели (
GET /admin/dashboard). - Запрет на уровне файловой системы: Веб-сервер (например, nginx, Apache) настроен блокировать доступ к определенным файлам (
.htaccess,.env) или директориям. - IP-бан: IP-адрес клиента внесен в черный список.
- Запрет по геолокации: Доступ к контенту ограничен для определенных регионов.
- Отказ в доступе к API: У API-ключа нет необходимых scope или прав.
Пример ответа сервера:
HTTP/1.1 403 Forbidden
Content-Type: application/json
{
"error": "Forbidden",
"message": "You do not have permission to access this resource."
}
Что делать при получении 403:
- Проверить, авторизован ли пользователь.
- Убедиться, что учетная запись имеет необходимые роли/разрешения (RBAC).
- Проверить конфигурацию сервера и правила брандмауэра (WAF).
- Для API — проверить scope токена доступа (OAuth 2.0).