HTTP 403 Forbidden

Доступ запрещён: сервер понял запрос и намеренно отказывается его выполнять.

Что означает HTTP 403

HTTP 403 Forbidden означает, что сервер понял, что вы запросили, и отказывает. В отличие от 401, повторная аутентификация не поможет — отказ связан с правами доступа или политикой, а не с личностью.

Причины варьируются от прав файловой системы на сервере до гео/IP-блокировок и решения веб-файрвола (WAF), что запрос выглядит подозрительно. Некоторые сайты также возвращают 403 вместо 404, чтобы скрыть, существует ли ресурс.

Частые причины ошибок 403

  • Недостаточно прав: у учётной записи нет нужной роли, либо у файла нет прав на чтение (chmod/владелец на сервере).
  • IP-адрес, страна или user-agent заблокированы сервером, CDN или правилом WAF.
  • Запрошен листинг каталога, а autoindex отключён (в папке нет index.html).
  • Защита от хотлинкинга отклоняет запросы с чужим Referer.
  • Не пройдена проверка Cloudflare или другого WAF — автоматизированный трафик часто получает здесь 403.

Как исправить со стороны пользователя

  • Убедитесь, что вы вошли в учётную запись, у которой действительно есть доступ.
  • Попробуйте без VPN или прокси — ваш исходящий IP может быть заблокирован.
  • Если вы владелец контента, проверьте права файлов и правила .htaccess/WAF, а не повторяйте попытку.

Как исправить со стороны разработчика

  • Проверьте владельца и права файлов (например, 644 для файлов / 755 для каталогов на типичных веб-серверах).
  • Проверьте правила запрета: .htaccess, директивы deny в nginx, плагины безопасности, управляемые правила WAF.
  • Убедитесь, что индексный документ существует, либо явно включите/отключите листинг каталога по замыслу.
  • Для API возвращайте 403 с машиночитаемой причиной, чтобы клиенты могли отличить отказ по политике от ошибки аутентификации.

Пример ответа

HTTP/1.1 403 Forbidden
Content-Type: application/json

{"error":"forbidden","reason":"account lacks role: admin"}

Частые вопросы

В чём разница между 403 и 401?

401 просит вас пройти аутентификацию; 403 говорит, что (повторная) аутентификация не изменит ответа — вам просто не разрешено.

Почему бот или скрипт получает 403, а браузер работает?

WAF или слой защиты от ботов фильтрует небраузерный трафик. Идентифицируйте себя должным образом или используйте официальный API сайта.

Может ли 403 возвращаться вместо 404?

Да — некоторые серверы скрывают существование ресурсов, единообразно отвечая 403 (или 404) на всё неавторизованное.