Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию.
Когда вы хотите посетить веб-сайт, используемый вами интернет-браузер получает некоторые данные с этого сайта. В результате между вашим устройством и сайтом происходит диалог. Это происходит с протоколом под названием HTTP. Вмешавшись в этот диалог, можно принять дополнительные меры безопасности.
Если вы управляете веб-сайтом или стремитесь к карьере веб-разработчика, заголовки безопасности HTTP бесценны для вас, поскольку они играют активную роль в безопасности как пользователя, так и веб-сайта.
Что такое HTTP Strict-Transport-Security (HSTS)?
HTTP Strict Transport Security (HSTS) заставляет пользователей использовать HTTPS для каждого запроса, который они делают в своем браузере. Это надежный способ борьбы с кибератаками, такими как понижение версии, и обеспечения безопасности всего трафика.
Активировать HSTS довольно просто. Рассмотрим диалог между клиентом и сервером. Когда вы пытаетесь получить доступ к сайту через браузер, вы являетесь клиентом. Сайт, который вы хотите открыть, зависит от сервера. Ваша цель — сказать серверу: «Я хочу открыть этот сайт». Это операция запроса. Сервер, с другой стороны, направляет вас на сайт, если вы выполняете желаемые условия.
Имейте это в виду в отношении этого примера флага HTTP-заголовка:
Строгая транспортная безопасность: max-age=16070200;
Когда вы добавите этот флаг в информацию заголовка ответа HTTP, все пользовательские запросы станут HTTPS. Что бы пользователь ни написал здесь, браузер автоматически оценит протокол как HTTPS и установит безопасное соединение.
Как использовать HSTS
Вместо того, чтобы добавлять всю эту информацию заголовка HTTP на уровень кода, вы можете сделать это в Apache, IIS, Nginx, Tomcat и других приложениях веб-сервера.
Чтобы включить HSTS в Apache:
LoadModule headers_module modules/mod_headers.so
<Виртуальный хост *: 443>
Заголовок всегда наборСтрогий-Транспорт-Безопасность "максимальный возраст=2592000; включить поддомены"
</VirtualHost>
Чтобы включить HSTS в Nginx:
add_header Strict-Transport-Security max-age=2592000; включить субдомены
Чтобы включить HSTS с IIS web.config:
<system.веб-сервер>
<httpпротокол>
<пользовательские заголовки>
<добавить имя ="Строгая транспортная безопасность" значение ="максимальный возраст = 63072000"/>
</customHeaders>
</httpProtocol>
</system.webServer>
Для пользователей CloudFlare
Cloudflare предоставляет бесплатную услугу HTTPS для всех с помощью службы SSL без ключа; перед подачей заявки на предварительную загрузку HSTS вы должны знать, что ваш сертификат вам не принадлежит. Многие сайты используют SSL-сертификаты. потому что это простой способ защитить данные.
Однако сейчас Cloudflare поддерживает функцию HSTS. Вы можете активировать все функции HSTS, включая предварительную загрузку, через веб-интерфейс Cloudflare, не мучаясь с настройками на веб-сервере.
Что такое X-Frame-Options?
X-Frame-Options — это заголовок безопасности, поддерживаемый всеми современными браузерами. X-Frame-Options направлен на защиту от кражи кликов, такой как Clickjacking. Как следует из названия, речь идет о работе уязвимого встроенного фрейма, также известного как iframe. Это элементы сайта, которые встраивают другую HTML-страницу в «родительский» сайт, поэтому вы можете использовать контент из других источников на своем сайте. Но злоумышленники используют iframe под своим контролем, чтобы заставить пользователей выполнять нежелательные для них действия.
По этой причине вам нужно не дать злоумышленникам найти фреймы на сайте.
Где и как использовать X-Frame-Options?
То, что делает X-Frame-Options, некоторые разработчики пытаются делать с такими языками, как JavaScript. Это не совсем неправильно. Тем не менее, риск все же существует, поскольку кодов, написанных во многих аспектах, недостаточно. Поэтому было бы разумно оставить эту задачу используемому вами интернет-браузеру.
Однако разработчику необходимо знать три параметра X-Frame-Options:
- Отрицать: полностью запретить вызов страницы в любом фрейме.
- SAMEORIGIN: Предотвратить вызов любого домена, кроме вашего собственного, в iframe.
- РАЗРЕШЕНИЕ ОТ uri: принимать вызовы iframe для URI, указанного в качестве параметра. Блокировать других.
Здесь SAMEORIGIN особенность выделяется больше. Потому что, хотя вы можете вызывать приложения в разных поддоменах с помощью iframe внутри друг друга, вы можете предотвратить их вызов через домен, находящийся под контролем злоумышленника.
Вот примеры того, как вы можете использовать SAMEORIGIN и X-Frame-Options с NGINX, Apache и IIS:
Использование X-Frame-Options SAMEORIGIN для Nginx:
add_header X-Frame-Options SAMEORIGIN;
Использование X-Frame-Options SAMEORIGIN для Apache:
Заголовок всегда добавляет X-Frame-Options SAMEORIGIN
Использование X-Frame-Options SAMEORIGIN для IIS:
<httpпротокол>
<пользовательские заголовки>
<добавить имя ="X-Frame-Параметры" значение ="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
Простое добавление заголовка SAMEORIGIN обеспечит большую безопасность для ваших посетителей.
Что такое X-XSS-защита?
Использование информации заголовка X-XSS-Protection может защитить пользователей от XSS-атак. Во-первых, нужно устранить XSS-уязвимости на стороне приложения. После обеспечения безопасности на основе кода потребуются дополнительные меры, например заголовки X-XSS-Protection, против уязвимостей XSS в браузерах.
Как использовать X-XSS-защиту
Современные браузеры могут обнаруживать потенциальные полезные нагрузки XSS, фильтруя контент, созданный приложениями. Эту функцию можно активировать с помощью информации заголовка X-XSS-Protection.
Чтобы включить заголовок X-XSS-Protection в Nginx:
add_header X-Frame-X-XSS-защита 1;
Чтобы включить заголовок X-XSS-Protection в Apache:
Заголовок всегда добавляет X-XSS-Protection 1
Чтобы включить заголовок X-XSS-Protection в IIS:
<httpпротокол>
<пользовательские заголовки>
<добавить имя ="X-XSS-защита" значение ="1" />
</customHeaders>
</httpProtocol>
Чтобы предотвратить запуск блока кода с XSS-атакой по умолчанию, вы можете использовать что-то вроде этого:
X-XSS-защита: 1; режим = блок
Это небольшое изменение необходимо внести, если существует потенциально опасная ситуация, и вы хотите предотвратить отображение всего контента.
Что такое X-Content-Type-Options?
Браузеры выполняют анализ под названием MIME Type Sniffing контента, представленного им веб-приложением. Например, если есть запрос на доступ к файлу PDF или PNG, браузеры, выполняющие анализ ответа HTTP, делают вывод о типе файла.
Рассмотрим файл с расширением jpeg, который на самом деле имеет текстовое/HTML-содержимое. После использования расширений и прохождения защиты в модуле загрузки файл успешно загружается. Загруженный файл вызывается через URL-адрес, и в результате анализ MIME Type возвращает Text/HTML. Он отображает содержимое как HTML. Именно тогда возникает уязвимость XSS.
Таким образом, вам нужно запретить браузерам выбирать контент путем прослушивания MIME-типа. Для этого можно использовать nosniff.
Заголовок X-Content-Type-Options для Nginx:
add_header X-Content-Type-Options nosniff;
Заголовок X-Content-Type-Options для Apache:
Заголовок всегда X-Content-Type-Options nosniff
Заголовок X-Content-Type-Options для IIS:
<httpпротокол>
<пользовательские заголовки>
<добавить имя ="X-Content-Type-Options" значение ="нюхать" />
</customHeaders>
</httpProtocol>
Что такое флаг файла cookie HttpOnly?
Веб-приложения отслеживают сеансы пользователей с помощью идентификатора сеанса. Браузеры будут хранить это и автоматически добавлять к каждому HTTP-запросу в пределах области действия файла cookie.
Возможно использовать куки для целей однако кроме передачи сеансового ключа. Хакеры могли узнать пользовательские данные, используя вышеупомянутую уязвимость XSS или атаку с подделкой межсайтовых запросов (CSRF). Итак, какие файлы cookie наиболее важны с точки зрения безопасности?
В качестве примера можно рассмотреть информацию, содержащуюся в последнем изображении, на которое вы нажали в галерее изображений. Таким образом, HTTP-трафик становится меньше, а часть нагрузки может быть разрешена интернет-браузером пользователя с помощью сценариев на стороне клиента.
Вот где HttpOnly приходит в. Ниже приведен пример того, каким должно быть назначение файлов cookie:
Набор-Куки: пользователь=t=cdabe8a1c2153d726; путь=/; HttpOnly
Обратите внимание на значение HttpOnly, отправленное в Set-Cookie операция. Браузер увидит это и не будет обрабатывать значения с флагом HttpOnly при доступе к куки через документ.cookie переменная. Другим флагом, используемым в процессе Set-Cookie, является безопасный флаг. Это означает, что значение cookie будет добавлено в заголовок только для HTTPS-запросов. Сайты электронной коммерции обычно используют его, потому что хотят уменьшить сетевой трафик и повысить производительность.
Используя этот метод, вы можете скрыть важные данные пользователей, такие как имена пользователей, пароли и информацию о кредитной карте. Но есть проблема. Пользователям, завершившим процесс входа в систему, присваивается значение cookie без флага «Безопасно». Пользователь может иметь ключ сеанса, когда он делает HTTP-запрос к не-HTTPS-ссылкам. Добавить безопасный флаг легко:
Набор-Куки: пользователь=t=cdabe8a1c2153d726; путь=/; Безопасный
Когда не следует использовать HttpOnly? Если вы полагаетесь на Javascript, вам следует быть осторожным, так как это может сделать ваш сайт менее безопасным.
Маленькие шаги работают для более широкой веб-безопасности
Для повышения безопасности веб-приложений вам не нужны передовые знания в области программного обеспечения и серверов. Изменив всего несколько строк, вы сможете предотвратить серьезные атаки. Конечно, этого недостаточно. Тем не менее, это небольшой, но эффективный шаг для обеспечения безопасности веб-сайта. Знания — лучшая профилактика, поэтому также полезно знать тонкие нюансы того, как HTTPS защищает данные во время передачи.