The Four HTTP Security Headers Every Site Should Send
2026-09-02 · 6 min
When a browser loads your site, the first line of defense is not in your JavaScript - it is in a handful of response headers your server sends before any HTML arrives. Four of them matter more than the rest combined, and a surprising number of production sites - including large ones - still send none of them.
These four headers are exactly what NetChecks' HTTP Header Inspector grades, so this guide doubles as the manual for reading its verdict: what 'critical' means there, and what to do about it.
2008
nosniff appears
Internet Explorer 8 introduces the X-Content-Type-Options header to stop browsers from guessing a file's type when the server declares it wrongly - the quiet end of a whole class of content-confusion attacks.
2009
Clickjacking gets a fence
X-Frame-Options is deployed by the major browsers after clickjacking demonstrations show that invisible frames can trick users into clicking things they never saw.
2012
HSTS becomes RFC 6797
HTTP Strict Transport Security lets a site tell the browser 'never come back to this domain over plain HTTP', closing the downgrade and cookie-hijacking window that HTTPS alone left open.
2012
CSP arrives
Content Security Policy reaches version 1.0 at the W3C, giving sites an allowlist mechanism that turns reflected XSS from 'possible' into 'blocked by policy'.
Strict-Transport-Security: remember to be HTTPS
HTTPS without HSTS has a hole: the very first request a visitor makes can still be plain HTTP (a typed address, an old bookmark, a link without https), and an attacker in control of that network can answer it before the redirect to HTTPS ever happens. HSTS closes this by instructing the browser to remember - for the max-age you declare - that this domain speaks HTTPS only.
Deploy it conservatively: start with a small max-age, make sure every subdomain serves valid HTTPS before adding the includeSubDomains directive, and treat the preload directive as a one-way door - it is submitted to a public list and very hard to walk back.
The other three, in one breath
X-Content-Type-Options: nosniff stops the browser from second-guessing the Content-Type you declared - a user-uploaded file served as text cannot be reinterpreted as an executable script. X-Frame-Options: SAMEORIGIN (or its CSP grandchild frame-ancestors) forbids other sites from embedding your pages in invisible frames, which is what clickjacking needs to work.
Content-Security-Policy is the deepest of the four: a policy like script-src 'self' tells the browser which script sources are legitimate, so an attacker who manages to inject markup into your page still cannot make their payload execute. It takes the most care to deploy - start in report-only mode, watch the violations, then enforce.
Security headers travel with every response and instruct the browser before any of your code runs - which is why they must come from the server, not from the page itself.
How to adopt them without breaking anything
Add the easy two first - X-Content-Type-Options and X-Frame-Options rarely break anything - then HSTS with a short max-age, then CSP last and incrementally. A header you deploy in report-only mode gives you a violation log you can act on instead of a broken page users will report for you.
Verify each step with an inspector rather than trusting the deployment: a header set on HTML pages but not on API responses, or set only on some virtual hosts, is a gap you cannot see from the outside - except with exactly this kind of tool.
Reading a verdict like 'critical: missing headers'
When a checker reports three or four missing security headers as critical, it does not mean the site has been compromised - it means the browser is being asked to improvise where it could have been instructed. The severity reflects the size of the gap, not the certainty of an attack.
The fix is mechanical: add each header at the reverse proxy or application level, re-run the check, and watch the verdict move from critical to warning to good as the list empties. It is the highest ratio of security gained per hour spent in all of web hardening.
Итог
Four headers, one afternoon, and an entire attack surface quietly closes. Check your own site's headers, fix what is missing, and let the browser do the rest of the work on every page load.
Ваш публичный IP-адрес и сетевое местоположение определяются автоматически.
Загружается автоматически при открытии NetChecks — ввод не требуется. Используйте кнопку «Обновить» после смены сети или переподключения VPN.
Ваш браузер
Комплексное сканирование
Запускает все соответствующие проверки для одного IP или имени хоста за один проход: DNS, whois, ping, traceroute, сканирование известных портов (1-1024), заголовки HTTP и сертификат SSL.
Введите домен или IP-адрес и запустите проверку, чтобы разом проверить DNS, whois, ping, traceroute, распространённые порты, HTTP-заголовки и SSL-сертификат.
Большинство проверок выполняются параллельно - обычно завершается примерно за 30 секунд, дольше, если цель медленная или недоступна.
Этап сканирования портов выполняется только при установленном флажке согласия выше - все остальные проверки выполняются в любом случае.
Ping
Отправляет ICMP echo-запросы на хост для проверки его доступности и задержки.
Введите имя хоста или IP-адрес и нажмите Ping, чтобы отправить ICMP echo-запросы и измерить задержку туда-обратно.
Подробнее о Ping
Что это
Ping отправляет пакеты ICMP Echo Request на узел и измеряет время, за которое возвращаются пакеты ICMP Echo Reply. Это самый базовый тест сетевого подключения из существующих: он отвечает ровно на один вопрос - "доступна ли эта машина и насколько быстро?". Протокол ICMP (RFC 792) был разработан ещё в 1981 году специально для передачи управляющих и диагностических сообщений по IP-сетям, вне какого-либо прикладного трафика - Ping является его самой известной и повсеместно доступной реализацией, присутствующей практически на каждой операционной системе и сетевом устройстве с самых первых версий.
Как это работает
Каждый пакет ICMP несёт поле TTL (Time To Live), уменьшаемое на единицу при прохождении каждого маршрутизатора; если оно достигает нуля до того, как пакет достигнет цели, пакет отбрасывается, и отправителю возвращается сообщение об ошибке. Время кругового обхода (RTT), измеряемое в миллисекундах, отражает суммарную сетевую задержку на всём пути туда и обратно, а не только последний участок вблизи цели - момент, который часто понимают неверно, поскольку медленный результат ping может иметь причину в любой точке пути, не обязательно рядом с тестируемым сервером. Ping обычно отправляет несколько пакетов подряд, а не один, что позволяет отличить разовый всплеск задержки от повторяющейся проблемы и рассчитать долю потерь пакетов по выборке.
Интерпретация результатов
Стабильное, низкое значение RTT - несколько миллисекунд в локальной сети, от 10 до 50 мс для назначения внутри той же страны и заметно больше для межконтинентального соединения - свидетельствует о здоровом соединении. Даже небольшая потеря пакетов (свыше 1-2%) особенно пагубна для чувствительных к задержке приложений, таких как VoIP или интерактивные удалённые сеансы, где каждый потерянный пакет проявляется как сбой или слышимый разрыв. Сильно варьирующаяся задержка от пакета к пакету (джиттер) для тех же случаев зачастую является более серьёзной проблемой, чем высокая, но абсолютно стабильная задержка. "Превышено время ожидания запроса" означает, что в отведённое время не пришло ни одного ответа - узел действительно может быть недоступен, файрвол может незаметно блокировать ICMP, либо где-то на пути повреждён маршрут; "Узел назначения недостижим" - это другое и более информативное сообщение: промежуточный маршрутизатор явно отправил обратно сообщение о том, что не смог переслать пакет, что помогает сузить круг поиска реальной проблемы.
Частые ошибки
Наиболее распространённая ошибка интерпретации - делать вывод, что узел "недоступен", как только ping не проходит, тогда как очень многие серверы и устройства - особенно за грамотно настроенным файрволом или размещённые у крупных облачных провайдеров - намеренно блокируют входящий ICMP в качестве политики, оставаясь при этом полностью работоспособными и доступными по своим реальным сервисам (HTTP, база данных и так далее). Поэтому отсутствие ответа на ping является значимым доказательством недоступности только в сочетании с другими признаками, например, если само приложение тоже не отвечает. И наоборот, успешный ping вовсе не гарантирует, что прикладной сервис, размещённый на этой машине, работает корректно - это два совершенно независимых уровня сетевого стека.
Когда использовать
Первое, что нужно проверить перед эскалацией тикета: отвечает ли машина вообще, прежде чем копать дальше? Подтверждение подключения после изменения правила файрвола или таблицы маршрутизации, чтобы убедиться, что изменение не нарушило доступ. Установление базового измерения задержки перед внедрением VoIP или переключением на резервный канал оператора, чтобы иметь объективную точку сравнения, если позже поступят жалобы на качество связи. Лёгкая, периодическая проверка работоспособности для MSP, параллельно контролирующего несколько клиентских площадок, всегда как дополнение к более глубокому мониторингу на уровне приложений, а не как замена ему.
Traceroute
Отслеживает сетевой маршрут (переход за переходом) до хоста назначения.
Введите имя хоста или IP-адрес и запустите проверку, чтобы увидеть каждый сетевой узел между этим сервером и целью с задержкой на каждом узле.
Введите домен, выберите тип записи (A, AAAA, MX, TXT, NS, CNAME, SOA, PTR, SRV или CAA) и выполните запрос.
Whois
Просмотр регистрационной информации домена или IP-адреса.
Введите домен или IP-адрес, чтобы узнать данные регистрации: регистратора, организацию-владельца и важные даты.
Проверка чёрных списков
Проверяет, находится ли IP-адрес или домен в публичных чёрных списках спама/злоупотреблений (DNSBL).
Введите IPv4-адрес или домен и запустите проверку сразу по 7 публичным чёрным спискам (DNSBL/RBL) - для каждого показывается статус: в списке, не в списке или ошибка проверки.
Сканирование TCP-портов
Проверка, открыты ли TCP-порты на хосте или IP: распространённые порты, свой список, или весь диапазон 1-65535.
Введите хост или IP, выберите распространённые порты, свой список или весь диапазон, затем просканируйте, какие TCP-порты отвечают.
Полное сканирование диапазона может занять до ~100 секунд. Крупные сканирования (более 100 портов, включая настраиваемые диапазоны/списки) ограничены 1 разом в минуту на посетителя.
Открытые порты (0)
Просмотр заголовков HTTP
Получает статус ответа HTTP и заголовки для URL.
Введите URL, чтобы получить код состояния HTTP-ответа и все заголовки ответа, отправленные сервером.
Проверка сертификата SSL / TLS
Проверяет TLS-сертификат хоста: издатель, сроки действия и оставшиеся дни.
Введите имя хоста, чтобы проверить его TLS-сертификат: издателя, сроки действия и количество дней до истечения.
Geo-IP запрос
Определяет географическое местоположение и сетевую информацию для IP-адреса. Оставьте пустым, чтобы узнать свой публичный IP.
Введите любой IP-адрес или оставьте поле пустым, чтобы узнать свой, — вы увидите примерное местоположение и данные о сети/провайдере.
Вычисляется полностью в вашем браузере — данные на сервер не отправляются.
Введите IP-адрес и префикс CIDR (например, 192.168.1.0/24), чтобы мгновенно вычислить диапазон сети, широковещательный адрес и количество доступных хостов.
Тест скорости
Базовый тест скорости загрузки/выгрузки относительно этого сервера (точность зависит от собственного канала сервера).
Нажмите «Старт», чтобы измерить скорость скачивания и загрузки относительно этого сервера. Точность зависит от собственного соединения этого сервера.
Словарь кодов стран
Коды стран ISO 3166-1 alpha-2 — поиск выполняется полностью в вашем браузере.
Ищите или просматривайте список кодов стран ISO 3166-1 alpha-2 — поиск выполняется полностью в вашем браузере.
Страна
Код ISO
Словарь телефонных кодов
Международные телефонные коды по странам — поиск выполняется полностью в вашем браузере.
Ищите или просматривайте международные телефонные коды по странам — поиск выполняется полностью в вашем браузере.
Страна
Код
Мировые часы
Выберите часовой пояс, чтобы увидеть текущее время — перетащите глобус, чтобы вращать его.
Выберите часовой пояс из списка или покрутите глобус, чтобы увидеть текущее время там.
Ваше время
--:--:--
—
—
Выбранное время
--:--:--
—
—UTC±00:00
Разница с вами—
—
Перетащите, чтобы вращать глобус.
Статус мобильной сети Франции
Мобильные вышки, не работающие или на обслуживании во Франции, по операторам (Orange, Free, SFR, Bouygues Telecom), по открытым данным Arcep. Снимок обновляется раз в день - не поминутный поток.
Просматривайте данные об авариях мобильных вышек и оптоволокна по французским операторам — ввод не требуется, данные обновляются автоматически из открытых данных Arcep.
Источник: Arcep, набор данных «Sites indisponibles», опубликован по Открытой лицензии / Etalab 2.0 - коммерческое использование явно разрешено, в отличие от ранее использовавшихся данных IODA/CAIDA. Значок «Норма/Наблюдение/Тревога» - собственная оценка (число сбоев сегодня относительно медианы за предыдущие дни), не официальная классификация Arcep. Ссылки на источники ниже.
Наиболее затронутые департаменты
Число объектов, сейчас не работающих или на обслуживании, по департаментам. Нажмите на оператора выше для фильтрации.
Качество оптоволоконной сети (FTTH) по операторам: доля зарегистрированных сбоев и доля неудачных подключений, по открытым данным Arcep. Ежемесячные показатели, скользящее среднее за 6 месяцев - не прямой поток, как в разделе мобильной связи.
Источник: Arcep, набор данных «Qualité des réseaux en fibre optique», опубликован по Открытой лицензии / Etalab 2.0 - коммерческое использование явно разрешено. Ссылки на источники ниже.
По операторам (материнская компания)
Средние значения за последние 6 доступных месяцев, по материнской компании оператора инфраструктуры.
NetChecks предоставляется исключительно для законной диагностики сети и образовательных целей, для систем, доменов и IP-адресов, которыми вы владеете или которые вы явно уполномочены тестировать.
Выполнение сканирования портов, DNS/whois-запросов, traceroute или других проверок в отношении сторонних систем без разрешения может нарушать законы о неправомерном использовании компьютеров в вашей юрисдикции (например, Computer Fraud and Abuse Act в США, «Loi Godfrain» во Франции или аналогичное местное законодательство). Только вы несёте ответственность за то, чтобы убедиться, что у вас есть право тестировать любую цель, указанную здесь.
Этот сайт и его результаты предоставляются «как есть», без каких-либо гарантий. Оператор этого сайта не несёт ответственности за любые прямые, косвенные или косвенные убытки, правовые последствия или неправомерное использование, возникшие в результате использования этого сайта.
Запросы ограничены по частоте для предотвращения злоупотреблений. Оператор этого экземпляра может по желанию включить журналирование активности запросов - в этом случае каждый запрос к инструменту (ваш IP-адрес, отметка времени, используемый инструмент и введённая цель/запрос) может записываться в базу данных в целях безопасности, предотвращения злоупотреблений и анализа использования. По умолчанию это отключено. Используя этот сайт, вы соглашаетесь с этими условиями; если вы не согласны, не используйте этот сайт.
Программное использование (API) этого сайта подчиняется тем же условиям, включая указанное выше требование авторизации.
Отправить отзыв
Сообщите о проблеме, оставьте комментарий или предложите новую функцию.
Этот сайт показывает рекламу и, если вы согласны, использует файлы cookie рекламных партнёров, чтобы помочь финансировать хостинг. Вы можете отказаться и продолжать пользоваться всеми инструментами без рекламы.