Ошибка 403 Forbidden: что значит и как исправить в API
Код 403 означает, что сервер понял запрос, но выполнять его для вас отказывается. Повтор с теми же данными не поможет: нужны другие права или другой адрес.
Что означает 403
Сервер знает, кто вы, или вход ему не нужен, но доступ к этому ресурсу или действию закрыт. В отличие от 401, новый вход обычно не помогает. Некоторые сервисы вместо 403 отвечают 404, чтобы не раскрывать, что ресурс существует.
Причины в API
У токена нет нужной роли или scope. Пользователь обращается к чужому объекту, например к заказу другого клиента, и сервер правильно его не пускает. Адрес или страна не входят в разрешённый список, запрос заблокировал WAF. Для запросов из браузера не передан CSRF-токен: многие фреймворки отвечают на это 403. Ключ API выдан без доступа к этому методу.
403 Forbidden от nginx
Если страница nginx с текстом 403 Forbidden, до приложения запрос не дошёл. Причины: у процесса nginx нет прав на чтение файлов, в каталоге нет индексного файла, а вывод списка файлов выключен, или в конфигурации стоит deny для этого адреса. Посетителю сайта такая ошибка часто означает блокировку по IP: сайт закрыт для части стран или для адресов VPN.
Как проверять права в тестах
Проверки доступа — одни из самых важных негативных тестов. Пользователь A не должен читать и менять объекты пользователя B, а обычный пользователь — вызывать методы администратора. Ожидаемый ответ — 403 или 404, и важно убедиться, что данные не изменились. В Checkcraft это отдельные запросы с токенами разных ролей и правила на код ответа.
Повторите это на своём API
Checkcraft — настольная программа: сохраняет проверки ответа API без кода и показывает, что не совпало. Начните с учебного примера, затем подставьте свои обезличенные данные. Free работает на Windows и Linux без ограничения срока.
Скачать FreeКак получить и запустить приложениеСкачивание без регистрации и почты, архив готов за пару минут. Состав бесплатной версии опубликован на странице тарифов.
Документация
Начните с примера по ссылкам и сопоставьте результат с требованием своей проверки.