Мы в Telegram
Добавить новость
Январь 2010 Февраль 2010 Март 2010 Апрель 2010 Май 2010
Июнь 2010
Июль 2010 Август 2010 Сентябрь 2010
Октябрь 2010
Ноябрь 2010 Декабрь 2010 Январь 2011 Февраль 2011 Март 2011 Апрель 2011 Май 2011 Июнь 2011 Июль 2011 Август 2011 Сентябрь 2011 Октябрь 2011 Ноябрь 2011 Декабрь 2011 Январь 2012 Февраль 2012 Март 2012 Апрель 2012 Май 2012 Июнь 2012 Июль 2012 Август 2012 Сентябрь 2012 Октябрь 2012 Ноябрь 2012 Декабрь 2012 Январь 2013 Февраль 2013 Март 2013 Апрель 2013 Май 2013 Июнь 2013 Июль 2013 Август 2013 Сентябрь 2013 Октябрь 2013 Ноябрь 2013 Декабрь 2013 Январь 2014 Февраль 2014 Март 2014 Апрель 2014 Май 2014 Июнь 2014 Июль 2014 Август 2014 Сентябрь 2014 Октябрь 2014 Ноябрь 2014 Декабрь 2014 Январь 2015 Февраль 2015 Март 2015 Апрель 2015 Май 2015 Июнь 2015 Июль 2015 Август 2015 Сентябрь 2015 Октябрь 2015 Ноябрь 2015 Декабрь 2015 Январь 2016 Февраль 2016 Март 2016 Апрель 2016 Май 2016 Июнь 2016 Июль 2016 Август 2016 Сентябрь 2016 Октябрь 2016 Ноябрь 2016 Декабрь 2016 Январь 2017 Февраль 2017 Март 2017 Апрель 2017
Май 2017
Июнь 2017
Июль 2017
Август 2017 Сентябрь 2017 Октябрь 2017 Ноябрь 2017 Декабрь 2017 Январь 2018 Февраль 2018 Март 2018 Апрель 2018 Май 2018 Июнь 2018 Июль 2018 Август 2018 Сентябрь 2018 Октябрь 2018 Ноябрь 2018 Декабрь 2018 Январь 2019 Февраль 2019 Март 2019 Апрель 2019 Май 2019 Июнь 2019 Июль 2019 Август 2019 Сентябрь 2019 Октябрь 2019 Ноябрь 2019 Декабрь 2019 Январь 2020 Февраль 2020 Март 2020 Апрель 2020 Май 2020 Июнь 2020 Июль 2020 Август 2020 Сентябрь 2020 Октябрь 2020 Ноябрь 2020 Декабрь 2020 Январь 2021 Февраль 2021 Март 2021 Апрель 2021 Май 2021 Июнь 2021 Июль 2021 Август 2021 Сентябрь 2021 Октябрь 2021 Ноябрь 2021 Декабрь 2021 Январь 2022 Февраль 2022 Март 2022 Апрель 2022 Май 2022 Июнь 2022 Июль 2022 Август 2022 Сентябрь 2022 Октябрь 2022 Ноябрь 2022 Декабрь 2022 Январь 2023 Февраль 2023 Март 2023 Апрель 2023 Май 2023 Июнь 2023 Июль 2023 Август 2023 Сентябрь 2023 Октябрь 2023 Ноябрь 2023 Декабрь 2023 Январь 2024 Февраль 2024 Март 2024 Апрель 2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
29
30
Интернет |

Использование HTTP-заголовков для предупреждения уязвимостей сайта

11
Использование HTTP-заголовков для предупреждения уязвимостей сайта

Поддержка безопасности веб-ресурса — один из важнейших аспектов в его благополучном существовании в Сети и не менее значимая составляющая, чем контент или SEO-оптимизация. Игнорирование текущих или возможных уязвимостей может повлечь серьезные проблемы не только для посетителей, но и для его владельца. Начиная с DDoS-атак и кликджекинга, заканчивая утечкой конфиденциальной информации и распространением вирусов. Впоследствии зараженный и по совместительству вредоносный веб-ресурс наверняка будет заблокирован поисковой системой, браузером или хостингом. Чтобы дать весомый отпор злоумышленникам, познакомимся с одним из эффективных рычагов настройки надежности своего сайта — HTTP-заголовками.

Что такое HTTP-заголовки

HTTP — протокол передачи гипертекста задействован в обмене данными между пользовательским приложением (как правило, браузером) и веб-сервером. Например: формат ресурса, его местонахождение, используемая кодировка, сведения для авторизации и параметры аутентификации. Такое клиент-серверное общение нуждается в обеспечении соответствующих мер, поэтому также существуют заголовки, призванные предотвращать различные кибератаки.

Список заголовков безопасности HTTP и их использование

Теперь, когда понятна суть и известно общее назначение, перейдем непосредственно к практике. Но прежде настоятельно рекомендую позаботиться о бекапе конфигурационного файла, в котором будут создаваться заголовки.

  • Nginx — nginx.conf;
  • .htaccess;
  • PHP — index.php (header.php/head.php) активного шаблона сайта.

Чтобы удостовериться, что в ответ сервера добавлен заголовок, можно воспользоваться специальным сервисом проверки заголовков, обычной проверкой ответа сервера от Яндекс или любым подобным веб-приложением.

Для наглядности рассмотрим пример, где безопасность сайта явно хромает на обе ноги.

Проверка безопасности сайта

Далее рассмотрим заголовки, их специфику и способы применения, после чего повторим проверку сервисом.

HTTP Strict Transport Security (принудительное использование защищенного соединения, HSTS)

Запрещает использование HTTP, активирует форсирование защищенного HTTPS-соединения, автоматически преобразует HTTP-запросы в HTTPS, блокирует попытки пользователя пройти дальше сообщения о проблемах с сертификатом. Отражает попытки перехвата трафика с применением поддельного сертификата.

Директивы:

  • max-age — интервал в секундах, в течение которого сайт будет отвечать по защищенному протоколу. Рекомендуется указывать не менее 18-ти недель.
  • includeSubDomains — указывается при необходимости распространения на поддомены.
  • preload — применяется при необходимости добавления сайта в предопределенный список HSTS.

Использование:

Nginx – в секции Server

add_header Strict-Transport-Security 'max-age=10886400‬; includeSubDomains;';

.htaccess

<ifModule mod_headers.c>
    Header set Strict-Transport-Security "max-age= 10886400; includeSubDomains;‬"
</ifModule>                

PHP

<?php header("Strict-Transport-Security: max-age=10886400; includeSubDomains;"); ?>

X-Xss-Protection

Предотвращает XSS-атаки путем активации фильтра межсайтового скриптинга.

Директивы:

  • 1 — фильтр включен
  • 0 — фильтр выключен
  • mode=block — если атака зафиксирована, то обработка страницы предотвращается
  • report=URL — отсылает на заданный url отчет при фиксировании атаки

Использование:

Nginx – в секции HTTP

add_header X-XSS-Protection "1; mode=block";    

.htaccess

<ifModule mod_headers.c>
    Header set X-XSS-Protection "1; mode=block"
</IfModule>            

PHP

<?php header("X-XSS-Protection: 1; mode=block"); ?>

X-Frame-Options

Ограничивает загрузку страниц сайта во фреймах. Снижает уязвимость перед кликджекинг-атаками.

Директивы:

  • ALLOW-FROM — разрешена загрузка во фреймах только для указанного url
  • SAMEORIGIN — разрешена загрузка страниц через фреймы, при условии, что это происходит в рамках одного домена
  • DENY — накладывает полный запрет на загрузку сайта через фреймы сторонних ресурсов

Использование:

Nginx - в секции Server

add_header X-Frame-Options «SAMEORIGIN»;

.htaccess

<ifModule mod_headers.c>
    Header set X-Frame-Options «SAMEORIGIN»
</ifModule>              

PHP

<?php header('X-Frame-Options: SAMEORIGIN'); ?>

X-Content-Type-Options

Препятствует фишинговым атакам, работающих на основе изменения MIME-типов и несанкционированных хотлинков. Даже если запретить пользователям сайта загружать исполняемые файлы, например, с расширением .js, злоумышленник может загрузить изображение или txt-файл на сервер с внедренным в него JavaScript-кодом и обратиться к нему напрямую через url, тем самым запустив его со всеми вытекающими последствиями. Директива всего одна — nosniff.

Nginx – в секции Server

add_header X-Content-Type-Options nosniff;

.htaccess

<ifModule mod_headers.c>
    Header set X-Content-Type-Options «nosniff»
</ifModule>  

PHP

<?php header('X-Content-Type-Options: nosniff); ?>

Content-Security-Policy (политика защиты контента, CSP)

Противостоит кликджекингу, попыткам внедрения кода и XSS-атакам. Суть заключается в том, чтобы указать серверу безопасный источник хранения и получения контента, например, скриптов, стилей, изображений и т.п. Загрузка с источников, не указанных в белом списке, блокируется. Поэтому если на вашем веб-ресурсе используется CDN, счетчики метрики и прочие скрипты, использующие внешние подключения, обязательно добавьте их.

Основные директивы:

  • default-src — источники по умолчанию;
  • script-src — скрипты;
  • object-src — плагины (в т.ч. Flash и Java);
  • style-src — стили;
  • img-src — изображения;
  • media-src — видео и аудио;
  • frame-src — фреймы;
  • font-src — шрифты;

С полным списком и описанием можно ознакомиться тут.

Правила составления:

  • если необходимо полностью запретить загрузку контента в рамках одной директивы, применяется — none;
  • self — обозначает текущий домен;
  • при перечислении url используется пробел.

Примеры:

  1. Content-Security-Policy: default-src 'self';
  2. Content-Security-Policy:default-src 'self'; style-src 'self' http:// domain.ru; script-src http:// domain.ru.

Использование:

Nginx - в секции Server

add_header Content-Security-Policy " style-src ’self’;";

.htaccess

<ifModule mod_headers.c>
    Header set Content-Security-Policy " style-src ’self’;"
</ifModule>   

PHP

<?php header("Content-Security-Policy: style-src ’self’"); ?>

Referrer-Policy

Зачастую ссылки ведущие с одного ресурса на другой, могут содержать в себе различную информацию, в том числе и конфиденциальную. Особенно это опасно при переходе с HTTPS-соединения на HTTP. Данный заголовок способен предотвратить утечку.

Основные директивы:

  • no-referrer — информация не отправляется вместе с запросами;
  • no-referrer-when-cross-origin — информация отправляется только в том случае, когда уровень безопасности протокола остается неизменным (HTTPS > HTTPS или HTTP > HTTP);
  • origin — оставляет только источник документа: https://domain.ru/page.html > https:// domain.ru;
  • origin-when-cross-origin — если запрос направляет на отличающийся протокол или веб-ресурс, то срабатывает как origin.

С полным списком и описанием можно ознакомиться тут.

Использование:

Nginx - в секции Server

add_header Referrer-Policy «origin-when-cross-origin;»;

.htaccess

<ifModule mod_headers.c>
    Header set Referrer-Policy «origin-when-cross-origin;»
</ifModule>                

PHP

<?php header("Referrer-Policy: origin-when-cross-origin"); ?>

Feature-Policy

Позволяет выборочно подключать или отключать различные функции веб-браузера пользователя при посещении сайта, либо менять их поведение.

Основные директивы:

  • geolocation — определение местоположения;
  • speaker — воспроизведение звуков;
  • microphone — использование средств аудио выхода;
  • fullscreen — контроль над полноэкранным режимом;
  • display-capture — захват дисплея.

С полным списком и описанием можно ознакомиться тут.

Правила составления:

  • запрет в рамках одной директивы — none;
  • self — обозначает текущий домен.

Использование:

Nginx - в секции Server

add_header Feature-Policy «speaker ‘none’;»;

.htaccess

<ifModule mod_headers.c>
    Header set Feature-Policy «speaker ‘none’;»
</ifModule>                

PHP

<?php header("Feature-Policy: speaker ‘none’"); ?>

Что ж, теперь если повторить проверку того же сайта, можно убедиться, что заголовки установлены корректно и работают так, как это необходимо.

Настройка безопасности сайта

Пример конфигурации для файла .htaccess:

htaccess для сайта

В заключение

Теперь вы знаете, как улучшить безопасность своего веб-ресурса, используя HTTP-заголовки. Как правило, сложностей нет, главное — подход с пониманием дела, без спешки, проверяя каждый шаг. Если у вас что-то не получается или просто нет возможности этим заниматься, вы всегда можете обратиться к команде наших специалистов. Мы поможем вашему сайту стать более надежным.

Ria.city

Читайте также

Блоги |

звезды шоу-бизнеса посетили весеннюю неделю моды estet fashion week

Блоги |

«1418»: выставка секции «Арт-фото» ТСХР в зале «Лаврушинский`15»

Интернет |

ВОЗ предупредила об увеличении в 2 раза смертности от лихорадки денге

Новости России

«1418»: выставка секции «Арт-фото» ТСХР в зале «Лаврушинский`15»

Шапки женские на Wildberries — скидки от 398 руб. (на новые оттенки)

«Автомобили-утопленники» из зон паводков начинают «всплывать» в регионах России

Подключение системы отопления в Московской области

Все города от А до Я

«Автомобили-утопленники» из зон паводков начинают «всплывать» в регионах России

Шапки женские на Wildberries — скидки от 398 руб. (на новые оттенки)

Брата 12-го фигуранта дела о теракте в "Крокусе" арестовывали за хулиганство

Подключение системы отопления в Московской области

Moscow.media

News24.pro и Life24.pro — таблоиды популярных новостей за 24 часа, сформированных по темам с ежеминутным обновлением. Все самостоятельные публикации на наших ресурсах бесплатны для авторов Ньюс24.про и Ньюс-Лайф.ру.

Разместить свою новость локально в любом городе по любой тематике (и даже, на любом языке мира) можно ежесекундно с мгновенной публикацией самостоятельно — здесь.

Персональные новости

Музыкальные новости
Концерт

Концерт «Стихи войны и мира. Баллада о своих»

Авто в России и мире

В клинике Хайдарова медиками работали семь человек без профильного образования

Расчехляем шампуры. Где в нашем округе безопасно и с комфортом пожарить шашлык

Володин: Финляндия наказала своих граждан закрытием КПП на границе с Россией

Школу в селе Александровский Завод в Забайкалье хотят сдать в конце 2024 года

Экология в России и мире

Спорт в России и мире

Новости тенниса
WTA

Как Рыбакиной стать второй ракеткой мира: расклад от WTA



As residents complain of strong odors, Carroll officials pass moratorium on DAF storage

Ryan Poles Needs A Last-Minute Review Of His Quarterback Scouting Notes To Ensure Nothing Is Missed

NYU Hospital on Long Island performs miraculous surgery

Ramon Cardenas aims to cement his contender status agains Jesus Ramirez Rubio tonight