Розбираємося, в яких ситуаціях виникає помилка 403 Forbidden і що робити, щоб її виправити, коли ви власник сайту і коли відвідувач.
Що всередині
- Що таке помилка 403 Forbidden
- Як може виглядати помилка 403 Forbidden
- Чому виникає помилка 403 Forbidden
- Як прибрати помилку 403 Forbidden
Що таке помилка 403 Forbidden
Помилка 403 Forbidden — це код стану HTTP, одна зі стандартних відповідей сервера на запит браузера. Така ж як і 404 Not Found, 500 Internal Server Error або 504 Gateway Time-out.
Конкретно цей код HTTP — 403 Forbidden — означає, що у відвідувача недостатньо прав для перегляду контенту.
Як може виглядати помилка 403 Forbidden
Дизайн і текст стандартної сторінки з помилкою буде відрізнятися в залежності від браузера і того, на якому веб-сервері працює сайт. Іноді стандартну сторінку з помилкою можуть міняти на сторінку в загальному дизайні сайту та писати на ній будь-який текст, не обов’язково «403», «Forbidden», «403 Forbidden» або «Помилка 403».
Ось текстові варіанти цієї помилки, які ви можете зустріти на різних сайтах:
- Forbidden
- 403. That’s an error.
- Error: Access Denied
- 403 Forbidden – nginx
- 403 Sorry! Access denied
- Access forbidden! Error 403
- HTTP Error 403 – Forbidden
- Ошибка 403. Доступ запрещен.
- 403 – Forbidden: Access is denied
- HTTP Status 403 – Access is denied
- Forbidden – You do not have permission to access this resource
- Forbidden – You do not have permission to access / on this server
- 403 Forbidden – Access to this resource on the server is denied!
- Sorry, you have been blocked – You are unable to access domen.com
- Access to www.domen.com was denied – You do not have authorization to view this page – HTTP ERROR 403
Чому виникає помилка 403 Forbidden
Як ми вже з’ясували, 403 помилка означає, що доступ до контенту заборонено. Це часто трапляється з таких причин:
- встановлені неправильні права доступу до папок і файлів;
- встановлений неправильний користувач/група для файлів і папок;
- доступ заборонений в файлі конфігурації веб-сервера;
- файли сайту завантажені не в кореневу папку на хостингу;
- невірно вказано ім’я індексного файлу в налаштуваннях;
- помилку викликає плагін або розширення.
Як виправити помилку 403 Forbidden
Можливо так і задумано, щоби ви бачили 403 помилку. Припустимо, адміністратор сайту усвідомлено обмежив до нього доступ. У цьому разі можна спробувати зайти на сайт через VPN або проксі, але це спрацює, тільки якщо доступ заблоковано конкретно для вашої IP-адреси.
Частіше буває навпаки — доступ закривають для усіх IP-адрес, а відкривають тільки для певних. Наприклад, офісного VPN або домашнього виділеного IP. Це простий спосіб захистити сайт від хакерів.
Якщо ви точно впевнені, що помилки не повинно бути, значить скоріше за усе щось зламалося на хостингу, де розміщено сайт. Знадобиться доступ до нього, щоби вирішити проблему. Ось що на ньому можна перевірити.
1. Перевірте права доступу до папок і файлів
У кожної папки і файлу на хостингу є права — параметр, який визначає, хто і що з ним може робити. Їх усього три:
- Читання — можна переглядати вміст файлів та папок;
- Редагування — можна вносити зміни у файл, створювати та видаляти файли у папках;
- Виконання — можна запускати скрипти або виконувати команди у тих чи інших папках.
Мати права можуть три категорії користувачів:
- Володар — звичайно користувач, який створив файл, але взагалі, володарем можна призначити й іншого користувача;
- Група — користувачі, які входять до списку довірених для володаря файлу або папки й можуть мати особливі права;
- Світ — всі інші користувачі, наприклад, відвідувачі сайту.
Права позначаються у вигляді тризначного числа, кожна цифра у якому позначає права певної категорії користувачів. Ось стандартні права, з якими все повинно працювати:
- Папки — 755 або 750;
- Файли — 644 або 640.
Виняток — файл wp-config.php на сайтах на WordPress. Його права повинні бути або 440, або 400.
Щоби дізнатися докладніше, як працюють права, читайте нашу іншу статтю:
Права доступу до папок і файлів на хостингу
2. Перевірте власника папок і файлів
Ще одна популярна причина виникнення помилки 403 — неправильний володар файлів та папок. Права на хостингу можуть бути вірними, але файлом чи папкою може володіти інший користувач, до групи довірених користувачів якого не належить веб-сервер. Через це на веб-сервер будуть поширюватися права інших користувачів, а їх може бути недостатньо.
З такою проблемою можуть зіткнутися користувачі VPS, на віртуальному хостингу вона не виникає. Рішенням буде — призначити володарем файлів та папок веб-сервер. Для цього треба підключитися до веб-серверу по SSH у командному рядку та використати таку команду:
chown користувач:група /шлях/до/файлу
3. Перевірте файл .htaccess
.htaccess — це файл з командами для веб-сервера Apache, які він повинен виконувати кожен раз під час обробки запиту до усіх чи певних сторінок сайту. У ньому можна налаштувати редирект, змінити ліміти веб-сервера і навіть заборонити доступ до певних сторінок сайту на основі певних параметрів.
403 помилка може виникнути через помилку в команді, конфлікту декількох команд або навіть декількох файлів .htaccess. Також причиною помилки можуть бути спеціальні заборонні команди зі словами «Deny from …», «Require IP …», «R = 403» або «RedirectMatch 403».
Якщо ви нещодавно щось змінювали у .htaccess, скоріше за усе, швидко знайдете команду, через яку виникає помилка. А якщо ні, команда могла з’явитися там після встановлення плагіну. Або вона була там раніше, але ви уперше виконали запит, для якого команда спрацювала.
Простий спосіб перевірити, справа у .htaccess чи ні, — тимчасово перейменувати цей файл, через що команди у ньому припинять працювати. Якщо після цього помилка 403 зникне, проблема з якоюсь із команд. Далі доведеться вручну перевіряти, з якою саме.
4. Перевірте індексний файл в кореневій папці сайту
Індексний файл є у кожної сторінки. Він завантажується, кожен раз коли хтось заходить на сторінку у браузері. Його ім’я прописується у конфігураційному файлі сайту.
Якщо у папці зі сторінкою, на яку намагаються зайти, не буде індексного файлу із вказаним у налаштуваннях ім’ям, веб-сервер спробує показати вміст папки, де знаходяться файли цієї сторінки. Це часто заборонено у налаштуваннях веб-серверу за замовчуванням, тому в такій ситуації 403 помилка — це норма.
Перевірте, щоб у конфігураційному файлі веб-сервера була вказана правильна назва індексного файлу. Припустимо, у вас там тільки index.html, а насправді файл називається index.php. Тоді просто додайте потрібну назву до директиви.
На веб-сервері Apache конфігураційні файли, у яких зазвичай прописують віртуальні хости, зберігаються у таких місцях:
- Основний конфігураційний файл httpd.conf у каталозі /etc/httpd/conf/httpd.conf або файл apache.conf у каталозі /etc/apache2/conf/ (залежить від дистрибутиву).
- Додаткові конфігураційні файли у каталогах /etc/httpd/conf/, /etc/apache2/conf.d/, /etc/apache2/sites-available/ або /etc/apache2/sites-enabled/.
Шукайте в них директиву «DirectoryIndex».
У веб-сервер Nginx конфігураційні файли, у яких зазвичай прописують віртуальні хости, зберігаються у таких місцях:
- Основний конфігураційний файл nginx.conf у каталозі /etc/nginx/.
- Додаткові конфігураційні файли у каталогах /etc/nginx/conf.d/, /etc/nginx/sites-available/ або /etc/nginx/sites-enabled/.
Шукайте в них рядок «index».
Також конфігураційні файли можуть зберігатися і в інших папках, якщо ви керуєте сервером за допомогою якоїсь панелі керування. Наприклад, для Webuzo це /usr/local/apps/apache, а для Plesk — /home/user/conf/.
5. Перевірте налаштування ModSecurity
ModSecurity — це файрвол, який захищає ваш сайт від зовнішніх загроз. Принцип його роботи полягає у тому, що він блокує запити з кодом HTTP 403 Forbidden, якщо вважає їх шкідливими.
Буває, файрвол спрацьовує, коли не повинен. Наприклад, відвідувач робить на сайті щось просте — наприклад, заповнює форму — натискає «Відправити», але ModSecurity розпізнає це як SQL-ін’єкцію, блокує дію та показує 403 помилку.
Рішенням проблеми буде вимкнути правило, але це вийде зробити самостійно тільки на VPS чи виділеному сервері. На віртуальному хостингу файрвол налаштовує провайдер і у звичайних користувачів немає до нього доступу. У такому випадку напишіть у підтримку провайдера та попрохайте їх вимкнути певне правило для вашого сайту.
Перевірити, що справа саме у файрволі можна у логах. На VPS чи виділеному сервері іх можна знайти за замовчуванням за такими шляхами:
- Для Apache — /usr/local/apache/logs/modsec_audit.log;
- Для Nginx — /var/log/modsec_audit.log.
На віртуальному хостингу ці логи будуть недоступні. У такому випадку зв’яжіться з підтримкою провайдера, поясніть їм ситуацію і попрохайте перевірити логи.
6. Вимкніть плагіни
Якщо попередні поради не допомогли та у вас сайт на CMS, спробуйте перевірити плагіни. У різних CMS вони можуть називатися модулі, додатки або розширення.
Будь який плагін це код, який ви додаєте собі на сайт. У ньому може бути баг, через який виникає помилка. Або декілька плагінів можуть конфліктувати між собою.
Простий спосіб перевірити, чи саме плагін призводить до 403 помилки — тимчасово вимкнути всі плагіни на сайті. Це можна зробити у менеджері файлів у панелі керування хостингом.
У cPanel для цього знайдіть на головній сторінці панелі блок «Файли» та перейдіть до розділу «Менеджер файлів».
Далі знайдіть кореневу папку сайту, перейдіть до папки wp-content i перейменуйте папку plugins, наприклад, у plugins-old. Це вимкне усі плагіни.
Зазвичай для основного домену коренева папка називається public_html, а для додаткового — так само як і додатковий домен.
Якщо після цього 403 помилка зникла, перейменуйте папку plugins назад, зайдіть до неї і по черзі перейменовуйте папку з кожним плагіном, поки не знайдете той, який викликає помилку.
7. Почистіть cookies
Помилка 403 вказує на проблему з правами доступу до контенту, а деякі cookies як раз використовуються для повторної авторизації на сайті. Наприклад, завдяки cookies браузери запам’ятовують, що ми вже увійшли в акаунт на деяких сайтах.
Можливо, 403 помилка виникає, тому що на сервері щось змінилося і він більше не приймає старі cookies. Як варіант спробуйте зайти на сайт в іншому браузері. Якщо вийшло, значить справа точно у браузері.
Як очистити куки в популярних браузерах:
8. Почистіть кеш
Можливо, якась з попередніх порад насправді спрацювала, але ви не бачите змін, тому що сторінка потрапила у кеш. Зазвичай такі сторінки не кешуються, проте на різних сайтах різні налаштування, тому про всяк випадок варту почистити кеш.
Як очистити кеш в популярних браузерах:
Що далі
Якщо жодне з рішень в статті не допомогло, опишіть вашу ситуацію в коментарях — постараємося допомогти. А якщо ви розмістили свій сайт у нас на хостингу, напишіть тікет в службу підтримки, щоб наші фахівці глянули в настройки і підказали, в чому справа.