8 заголовков безопасности HTTP, которые вы должны использовать для повышения безопасности
Опубликовано: 2022-04-08Заголовок безопасности HTTP — одна из самых основных, но мощных частей веб-безопасности. С помощью этих мер безопасности вы сможете поднять безопасность своего веб-приложения на новый уровень. Он защищает ваш сайт от всех атак, с которыми, вероятно, придется столкнуться вашему сайту.
Эти заголовки безопасности HTTP настолько эффективны, что когда вы их включаете, они защищают ваш веб-сайт от некоторых распространенных атак, таких как кликджекинг, внедрение кода, межсайтовый скриптинг и многие другие.
Итак, в этом посте мы объясним вам все о списке заголовков безопасности HTTP, как они могут быть полезны и как вы можете их реализовать.
Оставайтесь с нами и давайте начнем!
Что такое заголовок безопасности HTTP?
По сути, заголовок безопасности HTTP представляет собой набор команд или директив, которыми обмениваются ваш веб-браузер (или любой веб-клиент) и веб-сервер для указания связанных с безопасностью деталей связи HTTP. Эти обмены или совместное использование информации являются частью протокола HTTP. Эти команды или директивы сообщают вашему браузеру, что разрешено показывать или что нет для вашего веб-сайта, чтобы обеспечить его безопасность и отсутствие внедрения вредоносных программ.
Эти команды заголовка безопасности HTTP помогают защитить как веб-браузер, так и ваш веб-сайт от любых угроз безопасности, таких как хакерская атака или внедрение вредоносного кода . Таким образом, эта стратегия безопасности действует как общая система защиты.
Зачем вам нужно реализовать заголовок безопасности HTTP?
Как вы уже заметили, в Интернете циркулировало множество статей и отчетов о пиковом росте кибератак и случаев взлома данных за последние годы. И одним из главных виновников всех этих неудач являются плохие меры безопасности и неправильные настройки.
Эти заголовки безопасности HTTP помогают остановить некоторые из наиболее распространенных хакерских атак, внедрение вредоносных программ, кликджекинг, внедрение вредоносных скриптов и т. д. Они обеспечивают дополнительный уровень защиты, ограничивая некоторые действия между сервером и веб-браузером, пока веб-приложение Бег.
Хотя было доступно много заголовков HTTP, важно, какой из них вы должны реализовать, чтобы получить лучшую защиту. Как и любая веб-технология, которая со временем меняется, новые заголовки HTTP будут появляться и исчезать в зависимости от поддержки браузера.
Таким образом, вам становится важно решить, какой заголовок HTTP вы должны реализовать, а какой нет, но сейчас вы должны реализовать эти 8 списков заголовков безопасности HTTP, чтобы вы могли получить защиту от некоторых из наиболее распространенных угроз.
В дополнение к этому, заголовок HTTP Security также может помочь улучшить оценку SEO вашего сайта.
Запустить проверку заголовков безопасности
Прежде чем продолжить, первое, что вы должны сделать, это запустить проверку заголовка безопасности на своем веб-сайте. С помощью которого вам будет легко увидеть, каких важных заголовков безопасности не хватает на вашем сайте.
Для этого вам нужно посетить веб-сайт заголовков безопасности и ввести адрес своего веб-сайта, как показано на рисунке ниже:

Когда вы вводите URL-адрес своего веб-сайта и нажимаете кнопку «Сканировать», будет создан подробный отчет, в котором все жизненно важные отсутствующие заголовки безопасности HTTP, если таковые имеются, будут выделены красным цветом, а также оценка, показывающая, насколько безопасен ваш веб-сайт.

На изображении выше видно, что заголовки безопасности HTTP не обнаружены. которые мы объяснили и перечислили в разделе ниже.
Список наиболее важных заголовков безопасности HTTP
Давайте рассмотрим некоторые из наиболее важных заголовков безопасности HTTP, которые вы должны реализовать в своих веб-приложениях, чтобы повысить безопасность и включить дополнительный уровень защиты.
1. Параметры X-кадра
Microsoft впервые представила параметры X-Frame в своем Microsoft Internet Explorer, которые помогают защититься от внедрения вредоносных сценариев или атак с использованием межсайтовых сценариев. Этот заголовок безопасности HTTP защищает iFrame вашего веб-сайта, указывая браузерам запрашивать, следует ли обрабатывать iFrame на веб-сайте или нет.
В основном он защищает от всех атак кликджекинга, в которых злоумышленник реализует несколько уровней ссылки или кнопки, чтобы перенаправить пользователей на другую страницу и украсть их важную информацию.
Синтаксис для подражания:
1 2 3 |
X - Frame - Options : DENY X - Frame - Options : SAMEORIGIN X - Frame - Options : ALLOW - FROM < em > URL < / em > |
Инструкции Объяснение:
DENY : эта директива не позволит iFrame отображать
SAMEORIGIN: эта директива разрешает рендеринг iFrames только с одним и тем же источником.
ALLOW-FROM: Эта директива разрешает рендеринг iFrame только с определенного URL-адреса.
2. Строгая транспортная безопасность
Заголовок Strict-Transport-Security или HTTPS Strict Transport Security помогает защититься от атак MIM и перехвата файлов cookie, если он включен. Эта директива заставляет браузер использовать связь HTTPS, а не HTTP.
Давайте разберемся, как это работает, если вы используете какой-либо веб-сайт на HTTP и перешли на него на HTTPS. Ваши старые посетители по-прежнему будут пытаться получить доступ к старому URL-адресу с помощью HTTP. Поскольку вы уже перенесли свой сайт на HTTPS, старый URL-адрес перенаправит его на новый.
Но дело в том, что ваши посетители по-прежнему могут получить доступ к незашифрованной версии вашего веб-сайта, прежде чем перенаправить на новый зашифрованный URL-адрес. В промежутках между процессами хакеры получают возможность проводить атаки MIM или Man in the middle.
Но когда вы включаете Strict-Transport-Security, браузер получит инструкции не загружать веб-сайты HTTP, а заставить браузер обмениваться данными через HTTPS.
Синтаксис для подражания:
1 2 3 |
Strict - Transport - Security : max - age = < expire - time > Strict - Transport - Security : max - age = < expire - time > ; includeSubDomains Strict - Transport - Security : max - age = < expire - time > ; preload |
Инструкции Пояснение
max-age=<expire-time> : эта директива позволяет вам решить, как долго (в секундах) браузер может получить к ней доступ по HTTPS.
max-age=<время истечения>; includeSubDomains : если эта директива упоминается, это означает, что указанное выше правило также распространяется на все поддомены веб-сайта.
max-age=<время истечения>; preload : эта директива показывает, что веб-сайт был указан в глобальном списке HTTPS-сайтов.
3. Политика безопасности контента
Этот заголовок безопасности HTTP указывает браузеру загружать только то содержимое, которое упомянуто в политике. Это означает, что у вас будет возможность контролировать ресурсы своего веб-сайта и разрешать браузерам загружать только те ресурсы контента, которые вы внесли в белый список.
Это помогает браузерам решить, откуда загружать ресурсы контента, такие как сценарии, изображения или CSS. Если вы сможете успешно внедрить этот заголовок безопасности HTTP, он защитит ваш веб-сайт от кликджекинга, межсайтового скриптинга (XSS) и любого внедрения вредоносного кода.
Хотя это не гарантирует 100% защиты, оно помогает предотвратить и ограничить возможные повреждения. Даже сейчас большинство браузеров выявляют эту серьезную проблему и начинают ее поддерживать.
Синтаксис для подражания:
1 |
Content - Security - Policy : < policy - directive > ; < policy - directive > |
Инструкция Пояснение
<policy-directive> : вы можете включить любую директиву политики, такую как script-src(CSS) , img-src (изображения) или style-src (таблица стилей), и разрешить их загрузку.
4. Параметры типа X-контента
Этот тип заголовка позволяет ограничить или предотвратить анализ типов MIME, сообщая браузеру, что типы MIME преднамеренно настроены на сервере. По сути, при прослушивании MIME злоумышленники могут внедрить любой исполняемый вредоносный скрипт.
Например, злоумышленник внедрил какой-либо вредоносный ресурс, который изменил ответ невиновного другого ресурса, например изображения. Из-за прослушивания MIME браузер перестанет отображать тип содержимого изображения, а не начнет выполнять внедренные вредоносные ресурсы.
Когда вы включаете этот заголовок, он будет доверять и заставлять браузер следовать только тем типам MIME, которые были указаны в заголовках Content-type. Таким образом, вы можете легко защитить и предотвратить внедрение вредоносных сценариев или межсайтовые атаки сценариев.
Синтаксис для подражания:
1 |
X - Content - Type - Options : nosniff |
Инструкция Пояснение:
Директива nosniff немедленно заблокирует запрос, если пункт назначения запроса типа:
- стиль
- MIME-тип не является текстовым/CSS или типом Script.
- MIME-тип не является MIME-типом JavaScript
5. Реферальная политика
Эта безопасность заголовка позволит вам контролировать, следует ли раскрывать информацию о реферере? Если да, то на сколько.
Однако для других запросов браузер будет делиться только информацией об источнике.
Синтаксис для подражания:
1 2 |
Referrer - Policy : origin - when - cross - origin Referrer - Policy : no - referrer - when - downgrade |
Объяснение инструкции:
origin-when-cross-origin: Браузер будет делиться полной реферальной информацией для запросов одного и того же происхождения и других запросов, браузер будет делиться только информацией об источнике.
no-referrer-when-downgrade: браузер не будет делиться реферальной информацией при отправке заголовка Referrer
для запросов в менее безопасные места назначения.
6. Функция или политика разрешений
Этот заголовок безопасности позволяет веб-сайту решить, предоставлять ли доступ к какой-либо конкретной функции или API в браузере. С помощью этого заголовка вы можете легко контролировать функциональность любого приложения в вашем браузере, которое может нанести ущерб вашей конфиденциальности, и разрешать только в том случае, если вы считаете это законным и необходимым.
Например, если вы не хотите, чтобы веб-сайт имел доступ к вашему микрофону, веб-камере или местоположению, и хотите ограничить их функциональность, следуя приведенному ниже синтаксису:
1 2 3 |
Feature - Policy : microphone 'none' ; camera 'none' Feature - Policy : geolocation 'self' ; vibrate 'none' Permissions - Policy : geolocation = ( self ) , vibrate = ( ) |
синтаксис для подражания:
1 |
Feature - Policy : < directive > < allowlist > |
Инструкция Пояснение:
<директива> может быть чем угодно, например акселерометром, автовоспроизведением, датчиком внешней освещенности, батареей, камерой, микрофоном или геолокацией.

тогда как <allowlist> — это список источников, который может принимать одно или несколько значений, таких как «none», «self» и т. д., помещенных отдельно. Для справки, вы можете ознакомиться с полным списком директив и списком разрешений здесь.
7. X-разрешенный перекрестный домен
С помощью этого заголовка безопасности HTTP вы можете давать инструкции браузеру и контролировать все запросы, поступающие из разных доменов. Когда вы включите этот заголовок, вы ограничите свой веб-сайт загрузкой ненужных ресурсов веб-сайта, поступающих с других доменов. Так что ресурсы сайта могут быть использованы эффективно.
Этот заголовок безопасности является необязательным, и их наличие не обязательно, но их нужно установить и включить.
Синтаксис для подражания:
1 |
X - Permitted - Cross - Domain - Policies : "none" |
8. XSS-защита
Защита XSS или заголовок защиты от межсайтовых сценариев введены для защиты от атак с использованием межсайтовых сценариев. Эти атаки считаются очень распространенными и эффективными, поэтому большинство веб-браузеров по умолчанию включили в них защиту XSS.
Когда злоумышленник пытается заразить веб-сайт, внедряя вредоносный код javascript во время HTTP-запроса для кражи конфиденциальной информации, такой как данные транзакций, личные данные и т. д. При обнаружении любых атак с использованием межсайтовых сценариев заголовок защиты XSS отфильтровывается и останавливается. их немедленно.
Однако этот фильтр был доступен только в старых браузерах, а в современных он стал ненужным. Особенно, если вы уже реализовали действительно хорошую политику безопасности, и было бы хорошо просто иметь ее на случай, если ваши посетители все еще используют старые браузеры, которые не понимают политики безопасности контента.
Синтаксис для подражания:
1 2 3 4 |
X - XSS - Protection : 0 X - XSS - Protection : 1 X - XSS - Protection : 1 ; mode = block X - XSS - Protection : 1 ; report = < reporting - uri > |
Объяснение:
0 — это отключит защиту от XSS
1 — Включить защиту от XSS
1; mode=block — останавливать браузеры для полной загрузки веб-страницы при обнаружении атаки межсайтового скриптинга.
1; report=<reporting-uri> — при обнаружении XSS-атаки небезопасная часть будет заблокирована браузером и сообщит об этом
Как реализовать исправление уязвимости заголовков безопасности HTTP на вашем веб-сайте?
Если ваш поставщик услуг веб-хостинга позволяет вам иметь доступ к любому из двух файлов .htaccess или файлу wp-config.php. Затем можно легко реализовать исправление уязвимости HTTP-заголовка безопасности на вашем веб-сайте, добавив заголовки безопасности HTTP в любом месте.
В WPOven вы предоставите доступ по SSH, через который вы сможете легко получить доступ к файловому менеджеру и отредактировать свой файл .htaccess .
Шаг 1 : Сначала вам нужно включить SSH-доступ к сайту. Для этого вам необходимо получить доступ к сайту из панели управления WPOven .

Перейдите в раздел «Инструменты» .

Затем в разделе «Инструменты» вам нужно нажать кнопку «Включить доступ по SSH» внизу страницы.

Шаг 2 : После того, как доступ по SSH для сайта включен, вы можете войти в систему через сторонние приложения, такие как Putty или PenguiNet , используя учетные данные для входа в систему SFTP вашего сайта.
Однако вы также можете получить доступ к вашему файлу .htaccess или wp-config.php напрямую через FTP-клиент, широко известный как File Zilla.
Все, что вам нужно сделать, это просто выполнить следующие шаги, указанные ниже:
- Во-первых, вам нужно подключиться к вашему сайту WordPress с помощью FTP-клиента. Это позволит вам редактировать файл .htaccess. Этот файл можно найти в корневом каталоге вашего сайта WordPress.
- Если файл .htaccess не виден, вы можете проверить наличие скрытых файлов.
- Нет необходимости иметь какой-либо специальный редактор, вы можете писать код в любом текстовом редакторе, например Блокноте.
- Вы должны написать этот код и добавить его в файл .htaccess. Рекомендуется добавить его в конец файла .htaccess.
- Когда вы найдете сайт, загрузите его на локальный диск, а затем откройте в любом текстовом редакторе. Самый простой вариант — стандартный Блокнот. Добавьте следующий код в конец файла:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
X - Frame - Options : DENY X - Frame - Options : SAMEORIGIN X - Frame - Options : ALLOW - FROM URL Strict - Transport - Security : max - age = < expire - time > Strict - Transport - Security : max - age = < expire - time > ; includeSubDomains Strict - Transport - Security : max - age = < expire - time > ; preload Content - Security - Policy : < policy - directive > ; < policy - directive > X - Content - Type - Options : nosniff Referrer - Policy : origin - when - cross - origin Referrer - Policy : no - referrer - when - downgrade Feature - Policy : < directive > < allowlist > X - Permitted - Cross - Domain - Policies : "none" X - XSS - Protection : 0 X - XSS - Protection : 1 X - XSS - Protection : 1 ; mode = block X - XSS - Protection : 1 ; report = < reporting - uri > |
При необходимости измените атрибуты, директивы и значения, сохраните и загрузите их.
Кроме того, вы также можете получить доступ к файлам конфигурации вашего веб-сервера и применить эти заголовки безопасности. Однако, если вы не хотите вносить изменения самостоятельно и являетесь клиентом WPOven, вы можете отправить заявку в службу поддержки, и мы быстро сделаем это за вас.
Резюме
Из приведенного выше сообщения вы можете видеть, насколько важно иметь включенный заголовок безопасности HTTP на вашем веб-сайте. И в какой степени они обеспечивают усиление безопасности веб-сайта. Однако эти меры безопасности были реализованы по умолчанию в последних и продвинутых доступных браузерах. Но тем не менее, я не нашел причин, по которым вам не следует их использовать.
Если у вас нет доступа к серверам вашего сайта, вам будет сложно. Всегда лучше обратиться за помощью к профессионалам. Лучше обратиться к своему провайдеру веб-хостинга и попросить его внедрить заголовки безопасности HTTP на вашем веб-сайте.
Часто задаваемые вопросы
Безопасны ли заголовки HTTP?
Да, заголовки безопасности HTTP — одна из самых важных директив по ужесточению кибербезопасности. Вся информация в заголовках HTTP зашифрована.
Какие заголовки повышают безопасность?
Некоторые из заголовков, которые повышают безопасность веб-сайта:
1. Параметры X-кадра
2. Строгая транспортная безопасность
3. Политика безопасности контента
4. Параметры типа X-контента
5. Реферальная политика
6. Функция или политика разрешений
7. X-разрешенный перекрестный домен
8. XSS-защита
Что такое заголовок CSP?
Заголовок CSP или Content Security Policy указывает браузеру загружать только то содержимое, которое упомянуто в политике. Это означает, что у вас будет возможность контролировать ресурсы своего веб-сайта и разрешать браузерам загружать только те ресурсы контента, которые вы внесли в белый список.