Добавляем заголовки HTTP для безопасности сайтов на WordPress

Добавляем заголовки HTTP для безопасности сайтов на WordPress

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

 

 

 

 

  1. Введение
  2. Что такое HTTP-заголовки безопасности
  3. Как добавить заголовки HTTP на сайт под управлением WordPress
  4. Выводы

Введение

Одним из приемов, который обеспечит ваш сайт дополнительным слоем безопасности, являются специальные заголовки HTTP, которыми можно снабдить ваш ресурс на WordPress. Благодаря этому методу вы сможете успешнее бороться с атаками и уязвимостями.

Что такое HTTP-заголовки безопасности

Когда пользователь заходит в своем браузере на определенный сайт, ресурс отвечает соответствующими заголовками HTTP. Эти заголовки сообщают браузеру, как взаимодействовать с данным конкретным сайтом. Состоят такие заголовки чаще всего из метаданных, например: поле Cache-control для управления кешированием, списки кодов состояния HTTP и способ кодирования контента при передаче — Content-Encoding.

Грамотно используя заголовки HTTP, вы сможете повысить безопасность вашего сайта и оказать известную степень сопротивления кибератакам. Например, если добавить strict-transport-security, можно заставить последние версии браузеров Google Chrome, Firefox и Safari взаимодействовать с вашим сайтом только по HTTPS.

Для наглядности — вот шесть заголовков HTTP, которые помогут усилить устойчивость сайта к киберугрозам:

  • HTTP Strict Transport Security (HSTS)
  • X-Frame-Options
  • X-XSS-Protection
  • X-Content-Type-Options
  • Referrer-Policy
  • Feature-Policy

HTTP STRICT TRANSPORT SECURITY (HSTS)

Даже если вы купили, установили и настроили сертификат SSL/TLS, к вашему ресурсу все еще можно обратиться по обычному HTTP. У хакеров даже имеются несколько специальных скриптов, которые открывают сайт именно по незащищенному протоколу.

Следовательно, задействовав strict-transport-security (как мы писали выше), вы заставляете все современные браузеры «общаться» с сайтом исключительно по HTTPS. В этом случае, если даже злоумышленник пытается открыть сайт на WordPress по HTTP, браузер откажется открывать ресурс.

X-XSS PROTECTION

Атака XSS, межсайтовый скриптинг, — известная форма киберугрозы, с которой сталкиваются практически все значимые сайты. Именно этот заголовок помогает обезопасить ресурс от XSS. По умолчанию такая функция встроена и активирована в современных браузерах. Следовательно, если вы укажете этот заголовок на своем сайте, обозреватели будут учитывать ее.

В этом случае, если была зафиксирована попытка межсайтового скриптинга, затронутая страница вашего ресурса просто не загрузится.

X-CONTENT-TYPE-OPTIONS

Следующий тип заголовка безопасности — X-Content-Type-Options. Его прелесть заключается в значении nosniff, которое запрещает сниффинг контента. Используя этот заголовок, можно защитить свой сайт от атак с подменой типов MIME.

X-FRAME OPTIONS

Заголовок x-frame-options защищает веб-ресурсы от кликджекинга, запрещая iframe заполнять ваш сайт. Этот заголовок поддерживают следующие обозреватели: IE 8+, Chrome 4.1+, Firefox 3.6.9+, Opera 10.5+ и Safari 4+.

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

REFERRER-POLICY

Заголовок «Referrer» выступает на первый план именно в тот момент, когда пользователь попадает на веб-ресурс. Он помогает серверу понять, откуда пришел новый посетитель. Этот заголовок используется для аналитики.

Как вы уже наверняка успели понять, это представляет определенную проблему для конфиденциальности. Чтобы запретить подобное поведение, владельцу сайта на WordPress надо всего лишь добавить Referrer-Policy.

FEATURE-POLICY

Feature Policy представляет собой заголовок, позволяющий владельцам сайтов включать или отключать специфические для определенной платформы функции. Следовательно, вы, являясь владельцем веб-сайта, используя этот заголовок, сможете ограничить некоторые функции браузера на своем ресурсе.

Для каждой отдельной функции вам придется указать, запрещена она или разрешена. Вот список таких функций:

  • geolocation
  • midi
  • notifications
  • push
  • sync-xhr
  • microphone
  • camera
  • magnetometer
  • gyroscope
  • speaker
  • vibrate
  • fullscreen
  • payment

Например, если вы хотите запретить geolocation и camera на вашем сайте, вы прописываете следующий заголовок:

Feature-Policy: geolocation ‘none’ ; camera ‘none’

Теперь эти функции будут отключены для всех браузеров, посещающих ваш ресурс.

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

Внимание! Если вы планируете следовать этим инструкциям, вам надо убедиться, что на вашем WordPress-сайте установлен SSL-сертификат. В противном случае ваш сайт будет недоступен. Также не забудьте создать резервную копию всех файлов, которые будете модифицировать.

Чтобы добавить HTTP-заголовки на сайт, который работает на CMS WordPress, нужно просто добавить соответствующие строки в файл .htaccess. Для этого вы можете воспользоваться аккаунтом cPanel или FTP/SSH — найдите в корне сайта файл .htaccess и откройте его для редактирования.

Помните о том, что этот файл может быть скрыт. В этом случае придется в настройках клиента поискать опцию «отображать скрытые файлы». После этого добавьте в конец файла следующий строки:

Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options nosniff
Header always append X-Frame-Options SAMEORIGIN
Header Referrer-Policy: no-referrer-when-downgrade

Сохраните измененный файл.

А теперь интересный трюк — вы можете проверить, правильно ли вы прописали заголовки. Для этого воспользуйтесь сервисом securityheaders.com.

Выводы

В нашей инструкции мы сознательно не стали прописывать Feature Policy и Content Security Policy, они немного более сложны в использовании и могут навредить вашему сайту. Но и этого будет достаточно, чтобы повысить безопасность вашего сайта. Теперь вы сможете попробовать все вышеописанные шаги сами.

Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

RSS: Новые статьи на Anti-Malware.ru