Коллеги.добрый день!
Пришлось тут по работе заняться настройкой apache, а именно создание небольшого сайта, по сути это первое знакомство. Но вот при проверке на уязвимости получаю сообщение Missing X-Frame-Options' header Порт 80.
Установлено:
apache2 -v
Server version: Apache/2.4.41 (Ubuntu)
Server built: 2020-04-13T17:19:17
php -v
PHP 7.3.18-1+ubuntu20.04.1+deb.sury.org+1 (cli) (built: May 14 2020 10:36:07) ( NTS )
в apache отключена стандартная конфигурация 000-default.conf и добавлена своя sait.conf, создана символическая ссылка в /etc/apache2/sites-enabled/
включены модули ssl, rewrite, headers
Содержание sait.conf:
<VirtualHost *:80>
Define root_domain sait.domen.ru
ServerName ${root_domain}
Redirect / https://${root_domain}
</VirtualHost>
<VirtualHost *:443>
Define root_domain sait.domen.ru
Define root_path /var/www/sait
ServerName ${root_domain}
DocumentRoot ${root_path}
SSLEngine on
<IfModule mod_headers.c>
Header always set Strict-Transport-Security «max-age=15552000; includeSubDomains; preload»
</IfModule>
<Directory ${root_path}>
AllowOverride All
Require all granted
</Directory>
SSLCertificateFile /etc/letsencrypt/live/sait.domen.ru/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sait.domen.ru/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
Т.е. по сути на 80 порту сайта нет, а работает он только по ssl на 443, но тем не менее при сканирование на уязвимости получаю ошибку Missing 'X-Frame-Options' header Порт 80
Подскажите куда копать?
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Можно объявить глобально, т.е. вообще для всех сайтов веб-сервера. Делается — условно прямо в httpd.conf (ну, в каком-то общем для всех include’е из conf.d — зависит от дистрибутива и т.п.):
Либо внутри нужного сайта — указать такое в .htaccess:
Либо вообще в самом приложении отдавать нужный HTTP-заголовок (перед выводом любого HTML-контента). Всё это зависит от масштабов применения данной настройки.
P.S. Судя по вашему конфигу, порт 80 вы всё-таки определяете для своего сайта. Это делается в блоке «VirtualHost *:80». Там стоит редирект на HTTPS-версию сайта, однако сам порт (80-й) доступен, отвечает на запросы клиентов. Если он совсем не должен быть доступен, то полностью его уберите. Результат можно посмотреть по выводу netstat (или другой утилиты, что показывает доступные порты текущей машины).
Глобально x-frame задан, но это не помогает, htaccess положить некуда…
А вот, как в самом приложении отдавать нужный HTTP-заголовок, я честно говоря не понял?
Где и как x-frame задан глобально? Не переопределяется ли где-то на более локальном уровне?
Что значит, что .htaccess положить некуда? Он должен быть в корне /var/www/sait.
По поводу самого приложения. Например, в PHP это делается так.
Нуууу, вот как раз в файле security.conf расскоментирована строка Header always append X-Frame-Options SAMEORIGIN.
В корне сайта лежит .htaccess, но он по сути читается только при обращении на 443 порт, т.к. на 80 происходит редирект и .htaccess не обрабатывается. При этом на 443 все нормально и x-frame отдается браузеру. По php тоже не понятно, заголовок используется при выводе страниц, а как отдать его при редиректе?…
Наверное я заморачиваюсь и нет смысла пилить дальше. https://security.stackexchange.com/questions/188134/x-frame-options-header-on-redirect
В целом наверное это не уязвимость, так как по сути на 80 порту пустая страница.
Да, всё верно, хотел именно это и написать… У редиректа, скажем так, более высокий приоритет, поэтому сначала он срабатывает, а дело до остальных настроек (других заголовков) уже не доходит. Но криминала в этом нет.
Спасибо за помощь