HTTP 403 «Запрещено»: причины, предотвращение и исправление
Опубликовано: 2023-09-01- Что такое HTTP 403?
- Распространенные причины
- Диагностика
- Как предотвратить
- Как это исправить
- Связанные ошибки
HTTP 403 означает «Запрещено» и указывает, что сервер понимает запрос клиента, но отказывается его выполнять.
Цель этой статьи — пролить свет на суть HTTP 403, раскрыть его распространенные причины, провести диагностику и предложить методы предотвращения и устранения.
Мы также выделим связанные ошибки, чтобы обеспечить полное понимание.
Что такое HTTP 403?

HTTP 403 — это код состояния, который означает «Запрещено». При обнаружении он сообщает клиенту, что сервер понимает запрос, но отказывается его выполнить.
В отличие от статуса 401 «Неавторизованный» , который относится к проблемам с аутентификацией пользователя, ошибка 403 указывает на то, что аутентификация, возможно, прошла успешно, но аутентифицированный пользователь все еще не имеет необходимых разрешений для доступа к запрошенному ресурсу.
Распространенные причины
Ошибки HTTP 403 могут возникать по разным причинам:
- Недостаточно разрешений : у пользователя может не быть необходимых разрешений для доступа к определенному ресурсу на сервере.
- Географические ограничения : некоторый веб-контент может быть доступен только пользователям из определенных регионов или стран.
- Блокировка IP : серверы могут блокировать определенные IP-адреса из соображений безопасности или предыдущих подозрительных действий.
- Строгие правила .htaccess . Неправильные или чрезмерно строгие правила в файле .htaccess на серверах Apache могут привести к ошибке 403.
- Протоколы безопасности сервера . Некоторые серверы могут иметь протоколы безопасности, которые блокируют запросы от определенных пользовательских агентов или браузеров.
Диагностика
Чтобы определить основную причину ошибки HTTP 403, выполните следующие действия:
- Просмотр URL-адреса : убедитесь, что осуществляется доступ к правильному URL-адресу и нет опечаток.
- Проверка журналов сервера . Журналы сервера могут предоставить информацию о том, почему конкретный запрос был отклонен.
- Проверьте файл .htaccess . Для веб-сайтов, работающих на Apache, просмотр файла .htaccess может выявить любые чрезмерно ограничительные правила.
Как предотвратить
Чтобы избежать ошибок HTTP 403, необходимо принять упреждающие меры для обеспечения бесперебойного взаимодействия сервера и клиента:
- Регулярно проверяйте разрешения . Периодически проверяйте и настраивайте разрешения, чтобы гарантировать пользователям доступ к необходимым ресурсам.
- Обновляйте .htaccess осторожно . Изменяя файл .htaccess, делайте это осторожно и всегда сохраняйте резервные копии.
- Мониторинг безопасности сервера : будьте в курсе протоколов безопасности сервера, чтобы предотвратить непреднамеренные блокировки.
Как это исправить
Устранение ошибки 403 зависит от ее основной причины:
1. Настройте разрешения
Убедитесь, что пользователям или каталогам, которым требуется доступ, предоставлены правильные разрешения. (читать далее)

2. Исправьте проблемы с .htaccess.
- Создайте резервную копию файла
.htaccess
. Всегда делайте резервную копию файла.htaccess
перед внесением каких-либо изменений. - Проверьте наличие директив Deny . Найдите любые директивы
Deny
в файле.htaccess
. Если они присутствуют, возможно, они вызывают ошибку 403. Например:Order allow,deny Deny from all
. Чтобы решить эту проблему, либо удалите директиву, либо измените ее, чтобы разрешить желаемый трафик. - Защита паролем . Если определенные каталоги защищены паролем с помощью
AuthType
,AuthName
,AuthUserFile
иRequire
, убедитесь, что у вас есть правильные учетные данные для доступа к ним. Если вам не нужна защита паролем, вы можете закомментировать или удалить эти директивы. - Разрешения для файлов . Хотя это не совсем решение
.htaccess
, убедитесь, что ваши файлы и каталоги имеют правильные разрешения. Для многих серверов типичная настройка разрешений такова:- Папок: 755
- Файлов: 644
- Списки каталогов . Если вы пытаетесь получить доступ к каталогу, в котором нет индексного файла (например
index.html
илиindex.php
), а списки каталогов отключены, вы можете получить ошибку 403. Вы также можете:- Добавьте индексный файл в каталог.
- Включите списки каталогов с помощью:
Options +Indexes
- Правила Mod_Rewrite : Если вы используете правила mod_rewrite, убедитесь, что они написаны правильно. Неправильные правила иногда могут привести к ошибке 403. Закомментируйте конкретные правила, чтобы увидеть, являются ли они причиной.
- Проверьте ограничения файлов : найдите правила, которые ограничивают доступ на основе имени файла, например:
<Files "secretfile.php"> Order allow,deny Deny from all </Files>
При необходимости измените или удалите эти правила. - Убедитесь, что синтаксис .htaccess : неправильно записанный файл
.htaccess
или файл с недопустимыми директивами может вызвать ошибку 403. Убедитесь, что все директивы и синтаксис верны.
После внесения изменений в файл .htaccess
не забудьте очистить кеш браузера или протестировать его с помощью другого браузера, чтобы убедиться, что вы видите обновленный результат. Если ни одно из вышеперечисленных решений не помогло решить проблему, рассмотрите возможность восстановления резервной копии файла .htaccess
того времени, когда у вас не возникала ошибка 403.

3. Белый список IP-адресов
Если причиной является блокировка IP-адресов, рассмотрите возможность внесения соответствующего IP-адреса в белый список.
Белый список с .htaccess:
- Найдите существующие правила блокировки IP-адресов . Найдите в файле
.htaccess
все существующие правила, которые могут блокировать IP-адреса. Они могут выглядеть так:Order Deny,Allow Deny from all Allow from 123.123.123.123
В этом примере разрешен только IP-адрес123.123.123.123
, а все остальные IP-адреса запрещены. - Белый список IP-адреса . Если вы хотите внести в белый список определенный IP-адрес, вы можете добавить его с помощью директивы
Allow from
:Allow from YOUR.IP.ADDRESS.HERE
ЗаменитеYOUR.IP.ADDRESS.HERE
на IP-адрес, который вы хотите внести в белый список. . - Белый список нескольких IP-адресов . Если у вас есть несколько IP-адресов в белом списке, вы можете добавить несколько директив
Allow from
:Allow from IP.ADDRESS.1 Allow from IP.ADDRESS.2
- Белый список IP-диапазона . Если у вас есть диапазон IP-адресов, вы можете использовать нотацию CIDR или подстановочные знаки:
#Using CIDR notation Allow from 123.123.123.0/24 # Using wildcards Allow from 123.123.123.*
Оба приведенных выше примера будут внести в белый список все IP-адреса от123.123.123.0
до123.123.123.255
. - Сохранить и протестировать : после добавления необходимых директив
Allow from
сохраните файл.htaccess
и затем попробуйте получить доступ к своему веб-сайту с ранее заблокированного IP-адреса. Теперь он должен быть доступен. - Очистить кеш браузера : всегда очищайте кеш браузера или используйте режим инкогнито/приватное окно при тестировании, чтобы убедиться, что вы видите самые последние изменения.
Использование iptables
:
я. Резервное копирование текущих правил iptables . Прежде чем вносить какие-либо изменения, рекомендуется сделать резервную копию текущих правил iptables
.
sudo iptables-save > /path/to/backupfile.txt
ii. Белый список IP-адреса . Чтобы разрешить весь трафик с определенного IP-адреса:
sudo iptables -A INPUT -s YOUR.IP.ADDRESS.HERE -j ACCEPT
Замените YOUR.IP.ADDRESS.HERE
на IP-адрес, который вы хотите внести в белый список.
iii. Сохраните изменения . В зависимости от вашего дистрибутива вы можете использовать:
sudo service iptables save
Или:
sudo iptables-save > /etc/sysconfig/iptables
Использование ufw
:
я. Проверьте, установлен ли UFW . Если нет, вы можете установить его с помощью менеджера пакетов вашего дистрибутива, например:
sudo apt install ufw # For Ubuntu/Debian sudo yum install ufw # For CentOS (might not be in the default repositories)
ii. Включить UFW : если он еще не включен, вы можете включить UFW с помощью:
sudo ufw enable
iii. Белый список IP-адреса . Чтобы разрешить весь трафик с определенного IP-адреса:
sudo ufw allow from YOUR.IP.ADDRESS.HERE
Замените YOUR.IP.ADDRESS.HERE
на IP-адрес, который вы хотите внести в белый список.
iv. Проверьте правила : Вы можете проверить правила UFW с помощью:
sudo ufw status
4. Обратитесь за поддержкой к хостинг-провайдеру . Иногда обращение к вашему хостинг-провайдеру может помочь выявить и устранить проблемы, связанные с сервером.
Связанные ошибки
Чтобы дополнительно контекстуализировать HTTP 403, рассмотрите следующие связанные коды состояния HTTP:
- HTTP 401 (неавторизованный) : запрос требует аутентификации пользователя.
- HTTP 402 (требуется оплата) : зарезервировано для будущего использования, предполагает необходимость оплаты.
- HTTP 404 (не найден) : запрошенный ресурс недоступен на сервере.
В заключение отметим, что понимание тонкостей кода состояния HTTP 403 «Запрещено» жизненно важно для обеспечения оптимального веб-взаимодействия. Оставаясь в курсе и проявляя инициативу, разработчики и пользователи могут преодолевать потенциальные ловушки и обеспечивать бесперебойную работу в Интернете.

Как один из соучредителей Codeless, я предлагаю свой опыт разработки WordPress и веб-приложений, а также опыт эффективного управления хостингом и серверами. Моя страсть к приобретению знаний и энтузиазм к созданию и тестированию новых технологий побуждают меня постоянно внедрять инновации и совершенствоваться.
Экспертиза:
Веб-разработка,
Веб-дизайн,
Системное администрирование Linux,
SEO
Опыт:
15-летний опыт веб-разработки, включая разработку и проектирование некоторых из самых популярных тем WordPress, таких как Specular, Tower и Folie.
Образование:
У меня есть степень в области инженерной физики и магистра наук в области материаловедения и оптоэлектроники.
Твиттер, Линкедин