Ваш файл htaccess не содержит всех рекомендуемых заголовков безопасности
Эти заголовки говорят браузеру, как себя вести при общении с сайтом. В основном эти заголовки состоят из метаданных.
Вы можете использовать эти заголовки, чтобы наметить связь сервера и браузера, и улучшить безопасность сайта.
Перед применением настройки убедитесь, что у сайта есть и корректно работает SSL сертификат.
Чтобы добавить этот заголовок откройте файл .htaccess и добавьте этот код:
Если у сайта есть субдомены, вы можете добавить директиву includeSubDomains , то есть:
Защита против подмены страницы и клик-джекинга
Суть в том, что посетителю показывается какая-то страница, где он кликает по какой-то кнопке. На самом деле поверх этой страницы находится какая-то другая прозрачная страница, по кнопке на которой посетитель в действительности деле кликает.
Примечание: На некоторых темах это правило отключает или ломает настройщик Вордпресс Внешний вид — Настроить. Если ваш настройщик перестал работать, не применяйте это правило.
Expect-CT
В то время как HPKP осуждался, появился новый заголовок, чтобы предотвратить мошеннические SSL-сертификаты для клиентов: Expect-CT .
Цель этого заголовка — сообщить браузеру, что он должен выполнить дополнительные «фоновые проверки», чтобы убедиться, что сертификат является подлинным: когда сервер использует заголовок Expect-CT , он в основном запрашивает у клиента проверить, что используемые сертификаты находятся в открытых журналах сертификатов прозрачности (CT).
Инициатива по обеспечению прозрачности сертификатов — это усилия, предпринимаемые Google для обеспечения:
Открытой платформы для мониторинга и аудита SSL-сертификатов практически в реальном времени.
Заголовок принимает эту форму:
В этом примере сервер просит браузер:
Включив использование заголовка Expect-CT , вы можете воспользоваться этой инициативой, чтобы улучшить состояние безопасности вашего приложения.
Защита от отслеживания содержимого потока информации (Content Sniffing)
Этот тип атак проверяет содержимое потока информации, чтобы попытаться определить формат файлов данных внутри него и добавить свою информацию.
Добавьте этот код в .htaccess:
Никаких настроек не требуется, просто скопируйте и вставьте. Этот снипет добавляет заголовок X-Content-Type-Options в ответы сервера. Большинство современных браузеров понимают этот заголовок и будут использовать его, чтобы браузеры правильно интерпретировали типы файлов (css, javascript, шрифты, картинки, видео, и так далее).
Заключение
Здесь находится он-лайн генератор правил для файла .htaccess.
Некоторые из этих способов могут уже использоваться на вашем сайте, например, права доступа к файлам и папкам на сервере, или в плагинах безопасности. С точки зрения оптимизации сайта лучше оставить включенные опции только в одном месте.
Надеюсь, статья была полезна. Поделитесь в комментариях, что вы добавляете в .htaccess.
В настоящее время браузеры внедрили очень широкий спектр заголовков, связанных с безопасностью, чтобы злоумышленникам было труднее использовать уязвимости. В этой статье мы попытаемся обсудить каждый из них, объясняя, как они используются, какие атаки они предотвращают, и немного истории по каждому заголовку.
Пост написан при поддержке компании EDISON Software, которая бьется за честь российских программмистов и подробно делится своим опытом разработки сложных программных продуктов.
Отправляя свой веб-сайт в этот список, вы можете заранее сообщить браузерам, что ваш сайт использует HSTS, так что даже первое взаимодействие между клиентами и вашим сервером будет осуществляться по безопасному каналу. Но это обходится дорого, так как вам действительно нужно принять участие в HSTS. Если, по какой-либо причине, вы хотите, чтобы ваш веб-сайт был удален из списка, это непростая задача для поставщиков браузеров:
Имейте в виду, что включение в список предварительной загрузки не может быть легко отменен.
Это происходит потому, что поставщик не может гарантировать, что все пользователи будут использовать последнюю версию своего браузера, а ваш сайт будет удален из списка. Хорошо подумайте и примите решение, основываясь на вашей степени доверия к HSTS и вашей способности поддерживать его в долгосрочной перспективе.
Вот как выглядит политика HPKP:
Заголовок объявляет, какие сертификаты сервер будет использовать (в данном случае это два из них), используя хэш сертификатов, и включает дополнительную информацию, такую как время жизни этой директивы ( max-age = 3600 ) и несколько других деталей. К сожалению, нет смысла копать глубже, чтобы понять, что мы можем сделать с закреплением открытого ключа, поскольку Chrome не одобряет эту функцию — сигнал о том, что его принятие обречено на провал.
Решение Chrome не является иррациональным, это просто следствие рисков, связанных с закреплением открытого ключа. Если вы потеряете свой сертификат или просто ошибетесь во время тестирования, ваш сайт будет недоступен для пользователей, которые посетили сайт ранее (в течение срока действия директивы max-age , которая обычно составляет недели или месяцы).
В результате этих потенциально катастрофических последствий принятие HPKP было чрезвычайно низким, и были случаи, когда крупные веб-сайты были недоступны из-за неправильной конфигурации. Учитывая все вышесказанное, Chrome решил, что пользователям будет лучше без защиты, предлагаемой HPKP, и исследователи в области безопасности не совсем против этого решения.
Сделайте бэкап
.htaccess довольно чувствительный файл, поэтому одна ошибка в синтаксисе может положить весь сайт. Скопируйте файл на компьютер, если появится ошибка, вы сможете вернуться к первоначальному варианту.
X-XSS-Protection
Несмотря на то, что он заменен CSP, заголовок X-XSS-Protection обеспечивает аналогичный тип защиты. Этот заголовок используется для смягчения атак XSS в старых браузерах, которые не полностью поддерживают CSP. Этот заголовок не поддерживается Firefox.
Его синтаксис очень похож на то, что мы только что видели:
Удивительно, но Chrome достаточно осторожен, чтобы не допустить рендеринга страницы, что затрудняет создание отраженного XSS. Впечатляет, как далеко зашли браузеры.
Плагины
Если вы не хотите добавлять код, вы можете добавить эти заголовки с помощью плагинов:
Добавьте снипет в .htaccess
Никаких настроек не требуется, просто скопируйте и вставьте. Этот код добавляет заголовок X-Frame-Options в ответы сервера. Большинство современных браузеров понимают этот заголовок и будут использовать его, чтобы убедиться, что страница отображается только на своем домене.
Снипет в functions.php
Или добавьте в functions.php дочерней темы или с помощью специального плагина:
3. Запретите доступ к директориям сайта
Если эти папки будут доступны для просмотра, злоумышленник может заразить какие-то файлы на вашем сервере. Чтобы запретить доступ к папкам, добавьте это правило в .htaccess:
8. Защитите сайт от внедрения вредоносных скриптов
Многие хакеры пытаются изменить переменные Вордпресс GLOBALS и _REQUEST с целью внедрить вредоносный код. Добавьте этот код, чтобы хакеры не могли изменять существующие файлы:
Добавьте снипет в functions.php
Альтернативный способ добавить этот снипет на сайт — через файл functions.php дочерней темы или с помощью специального плагина:
11. Отключите XML-RPC
XML-RPC — это API интерфейс, который используется Вордпресс для удаленного доступа к сайту, для трекбеков и пингбеков и используется плагином Jetpack. Оставьте его включенным, если вы пользуетесь чем-то из этого, и выключите, если не пользуетесь, так как хакеры могут перебирать пароли тысячами через файл xmlrpc.php.
Даже если вы используете сложные пароли, брут-форс атаки расходуют большое количество ресурсов сервера. Если ваш сайт находится на недорогом хостинге, в результате такой атаки сайт может зависнуть из-за использования всех ресурсов сервера.
Чтобы отключить XML-RPC, добавьте это правило:
Content Security Policy (CSP)
Заголовок Content-Security-Policy , сокращенно CSP, предоставляет утилиты следующего поколения для предотвращения множества атак, от XSS (межсайтовый скриптинг) до перехвата кликов (клик-джеккинга).
Чтобы понять, как CSP помогает нам, сначала нужно подумать о векторе атаки. Допустим, мы только что создали наш собственный поисковик Google, где есть простое поле для ввода с кнопкой отправки.
Это веб-приложение не делает ничего волшебного. Оно просто,
- отображает форму
- позволяет пользователю выполнить поиск
- отображает результаты поиска вместе с ключевым словом, которое искал пользователь
Это представляет неприятное следствие. Злоумышленник может создать определенную ссылку, которая выполняет произвольный JavaScript в браузере жертвы.
Если у вас есть время и терпение, чтобы запустить пример локально, вы сможете быстро понять всю мощь CSP. Я добавил параметр строки запроса, который включает CSP, поэтому мы можем попробовать перейти к вредоносному URL-адресу с включенным CSP:
Как вы видите в приведенном выше примере, мы сказали браузеру, что наша политика CSP допускает только сценарии, включенные из того же источника текущего URL, что мы можем легко проверить, обратившись к URL с помощью curl и просмотрев заголовок ответа:
Поскольку XSS-атака осуществлялась с помощью встроенного сценария (сценария, непосредственно встроенного в контент HTML), браузер вежливо отказался выполнить его, обеспечивая безопасность нашего пользователя. Представьте, что вместо простого отображения диалогового окна с предупреждением злоумышленник настроил бы перенаправление на свой собственный домен через некоторый код JavaScript, который мог бы выглядеть следующим образом:
Они могли бы украсть все пользовательские куки, которые могут содержать очень конфиденциальные данные (подробнее об этом в следующей статье).
К настоящему времени должно быть ясно, как CSP помогает нам предотвращать ряд атак на веб-приложения. Вы определяете политику, и браузер будет строго придерживаться ее, отказываясь запускать ресурсы, которые будут нарушать политику.
Интересным вариантом CSP является режим только для отчетов. Вместо того чтобы использовать заголовок Content-Security-Policy , вы можете сначала проверить влияние CSP на ваш сайт, сказав браузеру просто сообщать об ошибках, не блокируя выполнение скрипта и т. д., Используя заголовок Content-Security-Policy-Report-Only .
Политики CSP сами по себе могут быть немного сложными, например, в следующем примере:
Эта политика определяет следующие правила:
Добавьте снипет в functions.php
Альтернативный способ добавить этот снипет на сайт — через файл functions.php дочерней темы или с помощью специального плагина:
12. Отключите нумерацию пользователей
Посетитель может определить ID всех пользователей, у которых есть опубликованные материалы на сайте. Этот процесс называется нумерацией пользователей.
Если хакер узнает ID пользователя, который также является логином пользователя, то теперь злоумышленнику остается только узнать пароль пользователя.
Даже если пользователи используют сложные пароли, злоумышленнику лучше не знать ID пользователей:
5. Запретите доступ с определенных IP
Вы можете полностью запретить доступ к сайту с подозрительных или вредоносных ip:
Замените IP Адрес 1 , IP Адрес 2 и IP Адрес 3 на ip-адреса, которым вы хотите запретить доступ к сайту.
Плагины
Если вы не хотите добавлять код, вы можете добавить эти заголовки с помощью плагинов:
Feature-Policy
Этот новый заголовок, который позволяет сайту контролировать какакие функции и API могут использовать браузеры.
Вы можете запретить браузеру использовать камеру, микрофон, геолокацию и другие функции. Полный список.
Обратите внимание, этот пример отключает все функции. Если ваш сайт использует какие-то функции, удалите все ненужное или перейдите на сайт Мозиллы для инструкции.
Добавьте в .htaccess этот код:
7. Запретите исполнение PHP файлов
Если хакеру удастся загрузить вредоносные файлы на сервер, он не сможет их запустить, потому что это правило запрещает их исполнение. Но вам все равно нужно будет найти и удалить инфицированные файлы.
Чем больше препятствий взломщику вы установите, тем ниже вероятность что ваш сайт взломают.
Обычно хакеры загружают бэкдоры в папку /wp-content/uploads/ , поэтому заблокируйте исполнение всех PHP файлов в этой папке:
6. Запретите доступ к PHP файлам
Закройте доступ к PHP файлам темы и плагинов. Хакер может внедрить вредоносный код и заразить сайт. Защита PHP файлов — важная мера предосторожности.
Добавьте этот код, чтобы заблокировать доступ неавторизованных пользователей к php файлам темы и плагинов:
9. Запретите доступ к папке wp-includes
В папке wp-includes хранятся файлы ядра Вордпресс, поэтому доступ к этой папке лучше полностью закрыть:
Добавьте это правило в .htaccess:
Если не получилось, попросите техподдержку вашего хостинга настроить сервер, чтобы он не показывал информацию о версии PHP.
Снипет в functions.php
Еще один способ добавить этот снипет на сайт — через файл functions.php дочерней темы или с помощью специального плагина:
X-Permitted-Cross-Domain-Policies
Сильно связанные с CORS, X-Permitted-Cross-Domain-Policies нацелены на междоменные политики для продуктов Adobe (а именно, Flash и Acrobat).
Я не буду вдаваться в подробности, так как это заголовок, предназначенный для очень конкретных случаев использования. Короче говоря, продукты Adobe обрабатывают междоменный запрос через файл crossdomain.xml в корневом каталоге домена, на который нацелен запрос, и X-Permitted-Cross-Domain-Policies определяет политики для доступа к этому файлу.
Звучит сложно? Я бы просто предложил добавить X-Permitted-Cross-Domain-Policies: none и игнорировать клиентов, желающих делать междоменные запросы с помощью Flash.
Выводы
В нашей инструкции мы сознательно не стали прописывать Feature Policy и Content Security Policy, они немного более сложны в использовании и могут навредить вашему сайту. Но и этого будет достаточно, чтобы повысить безопасность вашего сайта. Теперь вы сможете попробовать все вышеописанные шаги сами.
Подписывайтесь на канал "Anti-Malware" в Яндекс Дзен, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.
Тестирование вашей безопасности
Если ваш веб-ресурс работает на популярном движке WordPress, вам придется соблюдать правила безопасности, которые помогут защитить ваш блог, онлайн-магазин или любой другой бизнес-проект. Поскольку в процессе работы вашего сайта вы будете сталкиваться с обработкой конфиденциальной информации (например, передача паролей и платежных данных клиентов), лучше всегда позаботиться о том, чтобы ваша инсталляция WordPress была защищена максимально.
Functions.php
Снипет для functions.php:
Введение
Снипет в functions.php
Также вы можете добавить этот снипет на сайт через файл functions.php дочерней темы или с помощью специального плагина:
Проверка сайта на безопасность заголовков
Или в браузере, инструмент Просмотреть код (Inspect):
Включите плагин и зайдите на свой сайт. Загрузите страницу, вы увидите, какие заголовки добавил сервер.
Заголовки X-Security защищают сайт от XSS атак (cross-site scripting, межсайтовый скриптинг), защищают посетителей сайта от загрузки вредоносного кода, добавленного хакерами и защищают сайт от «подмены клика».
В этой статье вы узнаете, как добавить 3 заголовка, которые сервер будет добавлять в ответ на каждый запрос к ресурсам сайта. Это простые снипеты для файла .htaccess, которые усилят безопасность вашего сайта.
X-CONTENT-TYPE-OPTIONS
Следующий тип заголовка безопасности — X-Content-Type-Options. Его прелесть заключается в значении nosniff, которое запрещает сниффинг контента. Используя этот заголовок, можно защитить свой сайт от атак с подменой типов MIME.
2. Закройте доступ к wp-login.php и wp-admin
Если вы используете статический IP, вы можете запретить доступ к странице входа или панели администратора:
Первые две строчки перенаправляют посетителя с неавторизованного IP на страницу с ошибкой 404. Это правило не будет вызывать цикличные редиректы, ваш сайт не будет выглядеть как зависший.
Замените /путь-к-вашему-сайту/ в двух первых строчках на свой адрес.
Замените IP Адрес 1 , IP Адрес 2 и IP Адрес 3 на те IP адреса, с которых вы хотите иметь доступ к страницам wp-login.php и wp-admin.
Если вам нужен только один IP адрес, удалите строки 9 и 10, если вам нужно больше адресов, добавьте нужное количество строк.
Если вы или другие пользователи имеют динамические IP (или Мультисайт), используйте следующее правило:
Хакеры используют ботов, чтобы пытаться попасть в админку Вордпресс. Это правило определяет, что только те пользователи, которые вручную набрали wp-login.php или wp-admin в браузере, получат доступ к этим страницам.
Этот способ не защитит от хакеров, которые вручную набирают адрес страницы входа на сайт, но значительно уменьшит количество автоматических брут-форс атак (перебор паролей).
Еще один способ — создайте файл .htaccess в папке wp-admin . Это правило разрешает доступ к папке только указанным ip:
Замените IP Адрес 1 и IP Адрес 2 на свои IP.
Referrer-Policy
В начале нашей карьеры мы все, вероятно, совершили одну и ту же ошибку. Используйте заголовок Referer , чтобы применить ограничения безопасности на нашем сайте. Если заголовок содержит определенный URL в определенном нами белом списке, мы пропустим пользователей.
Хорошо, может быть, это был не каждый из нас. Но я чертовски уверен, что сделал эту ошибку тогда. Доверие заголовку Referer для предоставления нам достоверной информации о происхождении пользователя. Заголовок был действительно полезным, пока мы не решили, что отправка этой информации на сайты может представлять потенциальную угрозу для конфиденциальности наших пользователей.
Заголовок Referrer-Policy , родившийся в начале 2017 года и в настоящее время поддерживаемый всеми основными браузерами, может использоваться для смягчения этих проблем с конфиденциальностью, сообщая браузеру, что он должен только маскировать URL-адрес в заголовке Referer или вообще его не указывать.
Вот некоторые из наиболее распространенных значений, которые может принимать Referrer-Policy :
Заголовок Origin очень похож на Referer , так как он отправляется браузером в междоменных запросах, чтобы удостовериться, что вызывающей стороне разрешен доступ к ресурсу в другом домене. Заголовок Origin контролируется браузером, поэтому злоумышленники не смогут вмешаться в него. У вас может возникнуть соблазн использовать его в качестве брандмауэра для вашего веб-приложения: если Origin находится в нашем белом списке, разрешите выполнение запроса.
X-Frame-Options
Представьте, что вы видите веб-страницу, подобную этой
Как только вы нажимаете на ссылку, вы понимаете, что все деньги на вашем банковском счете исчезли. Что случилось?
Вы были жертвой атаки clickjacking.
Большинство банковских систем требуют, чтобы вы указали одноразовый PIN-код для подтверждения транзакций, но ваш банк не догнал время, и все ваши деньги пропали.
Пример довольно экстремальный, но он должен дать вам понять, какие могут быть последствия атаки с помощью кликджеккинга. Пользователь намеревается нажать на конкретную ссылку, в то время как браузер вызовет щелчок по «невидимой» странице, которая была встроена в виде фрейма.
К счастью, браузеры придумали простое решение этой проблемы: X-Frame-Options (XFO), который позволяет вам решить, можно ли встроить ваше приложение в виде iframe на внешних веб-сайтах. Популяризированная Internet Explorer’ом 8, XFO был впервые представлен в 2009 году и до сих пор поддерживается всеми основными браузерами.
Это работает так: когда браузер видит iframe, он загружает его и проверяет, что его XFO позволяет включить его в текущую страницу перед его рендерингом.
XFO считался лучшим способом предотвращения атак с использованием щелчков на основе фреймов до тех пор, пока через несколько лет не вступил в игру еще один заголовок — Content Security Policy или CSP для краткости.
Защита против XSS атак
Этот заголовок поможет защитить сайт от XSS атак. Добавьте этот снипет в файл .htaccess:
Никаких настроек не требуется, просто скопируйте и вставьте. Этот код добавляет заголовок X-XSS-Protection в ответы сервера. Большинство современных браузеров его понимают и будут использовать его против XSS атак.
REFERRER-POLICY
Заголовок «Referrer» выступает на первый план именно в тот момент, когда пользователь попадает на веб-ресурс. Он помогает серверу понять, откуда пришел новый посетитель. Этот заголовок используется для аналитики.
Как вы уже наверняка успели понять, это представляет определенную проблему для конфиденциальности. Чтобы запретить подобное поведение, владельцу сайта на WordPress надо всего лишь добавить Referrer-Policy.
Content-Security-Policy
Это эффетивное средство для защиты сайта от XSS атак. Этот заголовок говорит браузерам загружать контент только из разрешенных источников.
Вы разрешаете браузерам использовать только одобренный контент, и это поможет избежать загрузки вредоносного контента браузером.
Внимание: Если вы загружаете скрипты с других сайтов, например, скрипты Яндекс или Гугл Аналитики, этот заголовок может нарушить функционал сайта. Протестируйте перед применением.
В этом примере заголовок говорит браузерам загружать скрипты javascript .js только с этого сайта. Обратите внимание, что строчный (inline) код не будет работать.
Добавьте этот снипет в .htaccess:
X-Content-Type-Options
Иногда умные функции браузера в конечном итоге наносят нам вред с точки зрения безопасности. Ярким примером является MIME-сниффинг, методика, популярная в Internet Explorer.
MIME-сниффинг — это возможность для браузера автоматически обнаруживать (и исправлять) тип содержимого загружаемого ресурса. Например, мы просим браузер визуализировать изображение /awesome-picture.jpg , но сервер устанавливает неправильный тип при передаче его браузеру (например, Content-Type: text/plain ). Это обычно приводит к тому, что браузер не может правильно отображать изображение.
Чтобы решить эту проблему, IE приложил много усилий, чтобы реализовать функцию MIME-сниффинга: при загрузке ресурса браузер «сканирует» его и, если обнаружит, что тип контента ресурса не тот, который объявлен сервером в заголовке Content-Type , он игнорирует тип, отправленный сервером, и интерпретирует ресурс в соответствии с типом, обнаруженным браузером.
Теперь представьте себе хостинг веб-сайта, который позволяет пользователям загружать свои собственные изображения, и представьте, что пользователь загружает файл /test.jpg , содержащий код JavaScript. Видите, куда это идет? Как только файл загружен, сайт включит его в свой собственный HTML и, когда браузер попытается отобразить документ, он найдет «изображение», которое пользователь только что загрузил. Когда браузер загружает изображение, он обнаруживает, что это скрипт, и запускает его в браузере жертвы.
Чтобы избежать этой проблемы, мы можем установить заголовок X-Content-Type-Options: nosniff , который полностью отключает MIME-сниффинг: тем самым мы сообщаем браузеру, что полностью осознаем, что некоторые файлы могут иметь несоответствие в терминах типа и содержания, и браузер не должен беспокоиться об этом. Мы знаем, что мы делаем, поэтому браузер не должен пытаться угадывать вещи, потенциально создавая угрозу безопасности для наших пользователей.
HSTS на Cloudflare
Еще один способ добавить заголовок HSTS — включить его в панели Cloudflare, если вы им пользуетесь:
Feature policy
В настоящее время поддерживается очень немногими браузерами (Chrome и Safari на момент написания этой статьи), этот заголовок позволяет нам определить, включена ли конкретная функция браузера на текущей странице. С синтаксисом, очень похожим на CSP, у нас не должно быть проблем с пониманием того, что означает политика функций, такая как следующая:
Если у нас есть все сомнения, то как эта политика влияет на API браузера, мы можем просто проанализировать ее:
- vibrate ‘self’ : позволит текущей странице использовать vibration API и любому фрейму на текущем сайте.
- push * : текущая страница и любой фрейм могут использовать API push-уведомлений
- camera ‘none’ : доступ к API камеры запрещен на данной странице и любых фреймах
Объединение всех заголовков
Вы можете объединить все три заголовка в один:
Добавьте этот снипет в ваш .htaccess, никаких настроек не требуется.
Если вы не хотите использовать правило X-Frame-Options не добавляйте его, или закомментируйте:
Ваш сайт будет не так безопасен, но это определенно не большая проблема безопасности. Скорее всего, большинство сайтов в Интернете не имеют ни одного из этих заголовков и хорошо работают. Эти техники — дополнительные уровни защиты.
X-FRAME OPTIONS
Заголовок x-frame-options защищает веб-ресурсы от кликджекинга, запрещая iframe заполнять ваш сайт. Этот заголовок поддерживают следующие обозреватели: IE 8+, Chrome 4.1+, Firefox 3.6.9+, Opera 10.5+ и Safari 4+.
Таким образом, киберпреступникам будет гораздо труднее скрыть от пользователей кликабельную область, которая может похитить информацию из веб-браузера.
Куда добавлять изменения
Добавляйте свои комментарии к вашим правилам.
Когда вы добавляете свои правила, добавляйте их выше или ниже стандартных правил Вордпресс.
Если вы что-то исправили в этом коде, Вордпресс должен автоматически вернуть первоначальный вариант, но лучше ничего не менять. В крайнем случае у вас должна остаться копия файла, которую вы можете вернуть на сервер.
Добавляйте свои правила выше или ниже стандартных правил Вордпресс по-одному, пишите к ним комментарии, сохраняйте и проверяйте изменения на сайте.
Если у вас Nginx сервер, здесь вы найдете htaccess — nginx конвертер.
Проверка заголовков
Или в браузере, инструмент Просмотреть код (Inspect):
Включите плагин и зайдите на свой сайт. Загрузите страницу, вы увидите, какие заголовки добавил сервер:
Файл .htaccess (Hypertext Access, Доступ к гипертексту) — это конфигурационный файл сервера, который находится в корневой папке сайта.
В этом файле можно сделать дополнительные настройки для защиты от хакеров и спама, например, запретить доступ к определенному файлу или папке, установить пароль на папку, добавить редиректы каких-то запросов, заблокировать ip и так далее.
Это мощный инструмент, который можно использовать для увеличения безопасности сайта.
В этой статье вы узнаете, что можно добавить в файл .htaccess для увеличения безопасности сайта.
4. Доступ только к разрешенным типам файлов
В папке wp-content находятся темы, плагины и медиа контент. Кроме доступа к директориям сайта, можно разрешить доступ только к некоторым типам файлов, например, css, js, jpg, pdf, doc и так далее. Для этого создайте в папке wp-content новый файл .htaccess и добавьте это правило:
Не вставляйте этот код в файл .htaccess в корневой папке. Если вам нужно добавить в исключения другие типы файлов, добавьте их после |odf .
14. Отключите хотлинк картинок
Когда посетитель использует URL картинки, размещенной на вашем сайте и публикует ссылку на эту картинку на своем сайте, вместо того, чтобы хранить картинку на своем сайте, он нагружает ваш сервер и ваш канал интернета. Это называется хотлинкинг.
Чтобы отключить хотлинк картинок, используйте это код:
Referrer-Policy
Этот заголовок позволяет сайту контролировать, сколько информации браузер может иметь, когда уходит с сайта. То есть позволяет контролировать, какие сайты сайты могут видеть откуда пришел посетитель.
Рекомендуемое значение same-origin дает вам возможность отслеживать перемещение посетителей внутри вашего сайта, но другие сайты не будут знать, что посетитель пришел с вашего сайта.
Добавьте этот снипет в .htaccess:
Как создать .htaccess
В зависимости от вашей установки Вордпресс, у вас может не быть файла .htaccess, поэтому его нужно создать. Вы можете создать его на компьютере и перенести на сервер с помощью ftp-клиента, или создать этот файл в файл менеджере на хостинг-панели.
Если ваш сервер или компьютер не позволяет создать файл с таким именем, создайте файл htaccess.txt, перенесите его на сервер и на сервере переименуйте его в .htaccess.
Начиная с версии 4.2 все установки Вордпресс имеют красивые постоянные ссылки по умолчанию, поэтому файл .htaccess в этих версиях создается автоматически. В новый пустой файл добавьте стандартную запись, которую делает Вордпресс.
Для одиночной установки:
Для мультисайт установки, версия Вордпресс 3.5 или выше, если сайты находятся в подпапках:
Для мультисайт установки, версия Вордпресс 3.5 или выше, если сайты находятся на субдоменах:
Когда вы создаете новый .htaccess файл, дайте этому файлу права доступа как минимум 640 для защиты от возможных атак. Нормальные права для этого файла — 600. Если файл уже есть, проверьте, чтобы права доступа были не выше 640.
13. Используйте SSL
Это правило требует использование SSL сертификата, выданного домену, который указан в 3-ей строчке.
Добавьте снипет в functions.php
Альтернативный способ добавить этот снипет на сайт — через файл functions.php дочерней темы или с помощью специального плагина:
Что может делать .htaccess
Файл .htaccess находится в корневой папке сайта. Точка перед названием файла означает, что файл невидим, и вы сможете его видеть если включите настройку «Показывать скрытые файлы».
Файл используется для настройки сервера, типичное применение файла:
- Включает и отключает редиректы на другие страницы
- Добавляет пароль на папки
- Блокирует пользователей по IP
- Отключает показ содержимого папок
- Создает и использует собственные страницы для ошибок
В Вордпрессе этот файл используется для создания красивых постоянных ссылок (Настройки — Постоянные ссылки — Общие настройки), и создается автоматически когда эта функция включается.
Если вы уже знаете, для чего нужен этот файл, переходите к списку.
Cross-Origin Resource Sharing (CORS)
Однако в некоторых случаях может потребоваться выполнение запросов AJAX между разными источниками, и именно по этой причине браузеры реализовали Cross Origin Resource Sharing (CORS), набор директив, позволяющих выполнять запросы между доменами.
Механизм, лежащий в основе CORS, довольно сложен, и мы не будем практично рассматривать всю спецификацию, поэтому я сосредоточусь на «урезанной» версии CORS.
Все, что вам нужно знать на данный момент, это то, что с помощью заголовка Access-Control-Allow-Origin ваше приложение сообщает браузеру, то, что можно получать запросы из других источников.
Но когда мы удаляем параметр cors из URL, браузер вмешивается и запрещает нам доступ к содержимому ответа:
Вместо непосредственного выполнения нашего запроса POST , который потенциально может вызвать серьезные проблемы на сервере, браузер отправил запрос «предварительной проверки». Это не что иное, как запрос OPTIONS к серверу с просьбой проверить, разрешено ли наше происхождение. В этом случае сервер не ответил положительно, поэтому браузер останавливает процесс, и наш запрос POST никогда не достигает цели.
Это говорит нам пару вещей:
- CORS — это не простая спецификация. Есть немало сценариев, которые нужно иметь в виду, и вы легко можете запутаться в нюансах таких функций, как предварительные запросы.
- Никогда не выставляйте API, которые изменяют состояние через GET . Злоумышленник может инициировать эти запросы без предварительного запроса, что означает отсутствие защиты вообще.
X-XSS PROTECTION
Атака XSS, межсайтовый скриптинг, — известная форма киберугрозы, с которой сталкиваются практически все значимые сайты. Именно этот заголовок помогает обезопасить ресурс от XSS. По умолчанию такая функция встроена и активирована в современных браузерах. Следовательно, если вы укажете этот заголовок на своем сайте, обозреватели будут учитывать ее.
В этом случае, если была зафиксирована попытка межсайтового скриптинга, затронутая страница вашего ресурса просто не загрузится.
Как редактировать файл .htaccess
Вы можете редактировать .htaccess из вашей хостинг-панели, или через ftp-клиент.
В первом случае зайдите на вашу хостинг-панель, запустите файл менеджер, найдите файл .htaccess и откройте его как обычный текстовый файл.
Если вы пользуетесь ftp-клиентом — зайдите на свой сервер, найдите .htaccess в корневой папке сайта, скопируйте его на свой компьютер, отредактируйте, сохраните и закачайте обратно на сервер. Удалите старый файл с сервера, или замените старый на новый.
1. Защита важных файлов
Запретите доступ к файлам wp-config.php, htaccess, php.ini и логам ошибок. Добавьте это правило, чтобы запретить доступ к этим файлам:
У вас может не быть файла php.ini. Вместо него может быть файл php5.ini или php7.ini. Если у вас есть файл php5 или php7, замените php.ini на php5.ini или php7.ini . Если файла php.ini нет вообще, уберите php.ini| из правила.
Если вы хотите запретить доступ только к файлу wp-config.php, добавьте это правило:
Если вы хотите запретить доступ ко всем файлам .htaccess на сайте, добавьте этот код:
FEATURE-POLICY
Feature Policy представляет собой заголовок, позволяющий владельцам сайтов включать или отключать специфические для определенной платформы функции. Следовательно, вы, являясь владельцем веб-сайта, используя этот заголовок, сможете ограничить некоторые функции браузера на своем ресурсе.
Для каждой отдельной функции вам придется указать, запрещена она или разрешена. Вот список таких функций:
- geolocation
- midi
- notifications
- push
- sync-xhr
- microphone
- camera
- magnetometer
- gyroscope
- speaker
- vibrate
- fullscreen
- payment
Например, если вы хотите запретить geolocation и camera на вашем сайте, вы прописываете следующий заголовок:
Теперь эти функции будут отключены для всех браузеров, посещающих ваш ресурс.
Внимание! Если вы планируете следовать этим инструкциям, вам надо убедиться, что на вашем WordPress-сайте установлен SSL-сертификат. В противном случае ваш сайт будет недоступен. Также не забудьте создать резервную копию всех файлов, которые будете модифицировать.
Помните о том, что этот файл может быть скрыт. В этом случае придется в настройках клиента поискать опцию «отображать скрытые файлы». После этого добавьте в конец файла следующий строки:
Сохраните измененный файл.
Читайте также: