Топ-100
  • host
scanz как-обеспечить-безопасность-http-заголовков-для-предотвращения-уязьвимостей | хостинг | материалы

Как обеспечить безопасность HTTP-заголовков для предотвращения уязьвимостей

По  | Последнее обновление: https://geekflare.com/http-header-implementation/

Знаете ли вы, что большинство уязвимостей безопасности можно устранить, внедряя необходимые заголовки в заголовке ответа?

Безопасность так же важна, как контент и SEO вашего сайта, а тысячи веб-сайтов взломаны из-за неправильной конфигурации или отсутствия защиты.

Если вы являетесь владельцем веб-сайта или инженером по безопасности и хотите защитить свой сайт от Clickjacking, инъекций кода, типов MIME, XSS и т. Д., То это руководство поможет вам.

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

Заметки:

  • Перед внесением изменений рекомендуется сделать резервную копию файла конфигурации
  • Некоторые заголовки могут не поддерживаться во всех браузерах, поэтому проверьте совместимость перед реализацией.
  • Mod_headers должны быть включены в Apache для реализации этих заголовков. Убедитесь, что следующая строка не представлена ​​в файле httpd.conf.
  • Модули headers_module LoadModule / mod_headers.so

Если вы используете SUCURI Cloud WAF , вам не придется беспокоиться о том, чтобы добавить их вручную на свой веб-сервер, поскольку большинство из них автоматически включены.

X-XSS-Protection

Заголовок X-XSS-Protection может предотвратить некоторые атаки XSS(межсайтовые скрипты), и это совместимо с IE 8+, Chrome, Opera, Safari и Android.

Google, Facebook, Github используют этот заголовок, и большинство консультантов по тестированию на проникновение попросят вас реализовать это.

Существует четыре возможных способа настройки этого заголовка.

Значение параметра Имея в виду
0 Фильтр XSS отключен
1 Фильтр XSS включен и дезинфицирует страницу, если обнаружена атака
1;mode=block Фильтр XSS включен и предотвращает отображение страницы, если обнаружена атака
1;report=http://example.com/report_URI Фильтр XSS включен и сообщил о нарушении, если обнаружена атака

Давайте реализуем 1; mode = block на следующих веб-серверах.

HTTP-сервер Apache

Добавьте следующую запись в httpd.conf вашего веб-сервера apache

Header set X-XSS-Protection "1; mode=block"

Перезапустите apache для проверки

Nginx

Добавьте в nginx.conf следующую строку http

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

Перезапуск Nginx необходим, чтобы это отразилось на заголовке ответа на веб-страницу.

MaxCDN

Если вы используете MaxCDN, то добавление заголовка легко и доступно «на лету».

Перейдите в Edge Rules >> нажмите «Новое правило» и выберите «Добавить X-XSS-Protection Header» из раскрывающегося списка.

edgerules как-обеспечить-безопасность-http-заголовков-для-предотвращения-уязьвимостей | хостинг | материалы

Microsoft IIS

  • Открыть диспетчер IIS
  • Выберите сайт, для которого необходимо включить заголовок для
  • Перейдите в раздел «Заголовки ответов HTTP».
  • Нажмите «Добавить» в действии
  • Введите имя, значение и нажмите «ОК».

iis-x-xss-protection как-обеспечить-безопасность-http-заголовков-для-предотвращения-уязьвимостей | хостинг | материалы

  • Перезапустите IIS, чтобы увидеть результаты

Строгая транспортная безопасность HTTP

Заголовок HSTS (HTTP Strict Transport Security) обеспечивает передачу всех сообщений из браузера через HTTPS (HTTP Secure). Это предотвращает запросы HTTPS по подсказкам и перенаправляет HTTP-запросы на HTTPS.

Перед внедрением этого заголовка вы должны обеспечить доступ ко всей странице вашего сайта через HTTPS, иначе они будут заблокированы.

Заголовок HSTS поддерживается во всех основных версиях браузера, таких как IE, Firefox, Opera, Safari и Chrome. Существует три конфигурации параметров.

Значение параметра Имея в виду
max-age Продолжительность (в секундах), чтобы сообщить браузеру, что запросы доступны только через HTTPS.
IncludeSubdomains Конфигурация действительна и для субдомена.
preload Используйте, если вы хотите, чтобы ваш домен был включен в список предварительной загрузки HSTS

Итак, давайте рассмотрим пример настройки HSTS на один год, включая предварительную загрузку для домена и поддомена .

HTTP-сервер Apache

Вы можете реализовать HSTS в Apache, добавив следующую запись в файл httpd.conf

Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Перезапустите apache, чтобы увидеть результаты

Nginx

Чтобы настроить HSTS в Nginx, добавьте следующую запись в nginx.conf в соответствии с директивой server (ssl)

add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';

Как обычно, вам нужно перезапустить Nginx для проверки

Вспышка облака

Если вы используете Cloud Flare, вы можете включить HSTS всего за несколько кликов.

  • Войдите в Cloud Flare и выберите сайт
  • Перейдите на вкладку «Крипто» и нажмите «Включить HSTS».

cloudflare-hsts-config как-обеспечить-безопасность-http-заголовков-для-предотвращения-уязьвимостей | хостинг | материалы

Выберите настройки, которые вам нужны, и изменения будут применены «на лету».

Microsoft IIS

Запустите диспетчер IIS и добавьте заголовок, перейдя в «Заголовки ответов HTTP» для соответствующего сайта.

iis-hsts как-обеспечить-безопасность-http-заголовков-для-предотвращения-уязьвимостей | хостинг | материалы

Перезапустить сайт

X-Frame-Options

Используйте заголовок X-Frame-Options, чтобы предотвратить уязвимость Clickjacking на вашем веб-сайте. Внедряя этот заголовок, вы указываете браузеру не внедрять вашу веб-страницу в frame / iframe. Это имеет некоторые ограничения в поддержке браузера, поэтому вы должны проверить перед его внедрением.

Вы можете настроить следующие три параметра.

Значение параметра Имея в виду
SAMEORIGIN Frame / iframe содержимого разрешается только с одного и того же сайта.
DENY Предотвратите, чтобы любой домен вставлял ваш контент с помощью frame / iframe.
ALLOW-FROM Разрешить кадрирование содержимого только на конкретном URI.

Давайте посмотрим, как реализовать « DENY », поэтому домен не вмещает веб-страницу.

Apache

Добавьте следующую строку в httpd.conf и перезапустите веб-сервер, чтобы проверить результаты.

Header always append X-Frame-Options DENY

Nginx

Добавьте в nginx.conf следующее в директиву / блоке сервера.

add_header X-Frame-Options «DENY»;

Перезагрузите, чтобы проверить результаты

F5 LTM

Создайте iRule со следующим и связанным с соответствующим виртуальным сервером.

когда HTTP_RESPONSE { 

HTTP :: header вставить «X-FRAME-OPTIONS» «DENY» 

}

Вам не нужно ничего перезапускать, изменения отражаются в воздухе.

WordPress

Вы можете получить этот заголовок, реализованный через WordPress. Добавьте в файл wp-config.php следующее:

header ('X-Frame-Options: DENY);

Если вам неудобно редактировать файл, вы можете использовать плагин, как описано здесь .

Microsoft IIS

Добавьте заголовок, перейдя в «Заголовки ответов HTTP» для соответствующего сайта.

iis-x-frame-options как-обеспечить-безопасность-http-заголовков-для-предотвращения-уязьвимостей | хостинг | материалы

Перезагрузите сайт, чтобы увидеть результаты.

X-Content-Type-Options

Предотвратите риск безопасности типов MIME , добавив этот заголовок к HTTP-ответу вашей веб-страницы. Наличие этого заголовка указывает браузеру рассматривать типы файлов, как определено, и запрещать обнюхивание содержимого. Есть только один параметр, который вы должны добавить «nosniff».

Давайте посмотрим, как рекламировать этот заголовок.

Apache

Вы можете сделать это, добавив следующую строку в файл httpd.conf

Header set X-Content-Type-Options nosniff

Не забудьте перезапустить веб-сервер Apache, чтобы получить конфигурацию.

Nginx

Добавьте в файл nginx.conf следующую строку в блоке сервера.

add_header X-Content-Type-Options nosniff;

Как обычно, вам нужно перезапустить Nginx, чтобы проверить результаты.

WordPress

Если вы используете WordPress, вы можете использовать плагин Security Headers для реализации этого заголовка.

Microsoft IIS

Откройте IIS и перейдите в заголовки HTTP-ответов

Нажмите «Добавить» и введите имя и значение

iis-mime-types как-обеспечить-безопасность-http-заголовков-для-предотвращения-уязьвимостей | хостинг | материалы

Нажмите «ОК» и перезапустите IIS, чтобы проверить результаты.

Закрепление открытого ключа HTTP

Минимизируйте риск нападений «человек в середине» ( MITM ), присвоив сертификат. Это возможно с помощью заголовка HPKP (HTTP Public Key Pinning).

Вы можете связать открытый ключ корневого сертификата или немедленный сертификат. На момент написания документа HPKP в настоящее время работает в Firefox и Chrome и поддерживает алгоритм хэширования SHA-256 .

Возможны четыре конфигурации параметров.

Значение параметра Имея в виду
report-uri=”url” Сообщайте об указанном URL-адресе, если проверка PIN-кода не удалась. Это необязательно.
pin-sha256=”sha256key” Укажите контакты здесь
max-age= Браузер запоминает время в секундах, когда сайт доступен только с помощью одного из закрепленных ключей.
IncludeSubdomains Это применимо и для субдомена.

Давайте посмотрим пример заголовка HPKP на facebook.com

public-key-pins-report-only:max-age=500; pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18="; pin-sha256="r/mIkG3eEpVdm+u/ko/cwxzOMo1bk4TyHIlByibiA5E="; pin-sha256="q4PO2G2cbkZhZ82+JgmRUyGMoAeozA+BSXVXQWB8XWQ="; report-uri=http://reports.fb.com/hpkp/

Если это то, что вам нужно реализовать на вашем веб-сайте, перейдите к руководству по внедрению, написанному Скоттом Хелме .

Политика безопасности контента

Предотвратите XSS, clickjacking, атаки на инъекции кода , используя заголовок политики безопасности контента (CSP) в ответе HTTP вашей веб-страницы. CSP инструктирует браузер загружать разрешенный контент для загрузки на веб-сайт.

Все браузеры не поддерживают CSP , поэтому вам нужно проверить его перед его внедрением. Существует три способа реализации заголовков CSP.

  1. Content-Security-Policy - Уровень 2 / 1.0
  2. X-Content-Security-Policy - Устаревший
  3. X-Webkit-CSP - Устаревший

Если вы все еще используете устаревший вариант, вы можете перейти к обновлению до последнего.

Для реализации CSP существует несколько параметров, и вы можете ссылаться на OWASP для идеи. Однако давайте рассмотрим два наиболее используемых параметра.

Значение параметра Имея в виду
по умолчанию-Src Загрузите все из определенного источника
скрипт-Src Загружать только скрипты из определенного источника

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

Apache

Получите следующее добавленное в файле httpd.conf и перезапустите веб-сервер, чтобы получить эффективность.

Header set Content-Security-Policy "default-src 'self';"

Nginx

Добавьте в серверный блок следующее: nginx.conf

add_header Content-Security-Policy "default-src 'self';";

Microsoft IIS

Перейдите в заголовки HTTP-ответов для вашего соответствующего сайта в диспетчере IIS и добавьте следующие

iis-csp как-обеспечить-безопасность-http-заголовков-для-предотвращения-уязьвимостей | хостинг | материалы

Надеюсь, что инструкции по настройке заголовков помогут сделать ваше веб-приложение безопасным и безопасным . Если вы хотите защитить веб-сервер IIS, вы также можете рассмотреть WebKnight WAF, где вы можете сконфигурировать выше всех и более того.

Комментарии (0)

There are no comments posted here yet

Оставьте свой комментарий

Posting comment as a guest.
Вложения (0 / 3)
Share Your Location

Последние комментарии

Хороший, познавательный (для тех кто в теме или хотя бы ...
в Joomla Article 29.07.2018 08:24