Лучшие снипперы .htaccess для повышения безопасности WordPress

Безопасность WordPress является одним из самых подрываемых факторов среди начинающих блоггеров. При неконтролируемой установке WordPress существует немало потенциальных уязвимостей, которые остаются без присмотра. Большинство учебников по установке WordPress объясняют быстрый и простой способ развернуть WordPress за считанные минуты. Но они пропускают несколько важных факторов безопасности. Например, просмотр каталогов и использование имени пользователя «admin» считаются серьезными лазейками безопасности. Сегодня мы рассмотрим фрагменты кода .htaccess, которые помогут улучшить безопасность вашего блога WordPress. Прежде чем мы начнем, давайте быстро рассмотрим, что такое файл htaccess.

Что такое файл .htaccess?
Файл htaccess является необязательным файлом конфигурации для веб-сервера Apache для интерпретации для каждого каталога. Вы можете хранить различные настройки в этом файле, такие как: защита паролем каталога, блокирование IP-адресов, блокирование файла или папки из общего доступа и т.д. Традиционно файл .htaccess присутствует в базовом каталоге установки WordPress. Он сохраняет структуру постоянной ссылки по умолчанию.

СОВЕТ. Прежде чем начать, обязательно создайте резервную копию текущего файла .htaccess (если он есть).

1. Блокировка плохих ботов


Одним из лучших применений файла .htaccess является его способность отклонять несколько одновременных подключений IP-адресов доступа к вашему сайту. Это полезно при блокировке известных спамеров и других подозрительных источников.
# Блокировка одного или несколько IP-адресов.
# Замените IP_ADDRESS_* на IP-адрес, который вы хотите заблокировать

<Limit GET POST>
order allow,deny
deny from IP_ADDRESS_1
deny from IP_ADDRESS_2
allow from all
</Limit>

Где IP_ADDRESS_1 — это первый IP-адрес, который вы хотите запретить для доступа к вашему сайту. Вы можете добавить столько IP-адресов, сколько хотите. Независимо от того, какие пользовательские агенты (браузеры) используют эти IP-адреса, они не смогут получить доступ к одному файлу с вашего сервера. Веб-сервер автоматически откажет в доступе.

2. Отключить Просмотр Каталогов

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

Если случайно выбирать 10 личных или бизнес-сайтов под управлением WordPress, у 6-8 из них не будет отключен просмотр каталогов. Это позволяет любому легко «обнюхать» папку wp-content/uploads или любой другой каталог, у которого нет файла index.php по умолчанию.
# Отключить просмотр каталогов
Options All -Indexes

3. Разрешить только выбранные файлы из wp-content.

Как вы знаете, папка wp-content содержит большинство ваших тем, плагинов и всех загрузок мультимедиа. Вы, конечно, не хотите, чтобы люди обращались к нему без ограничений. В дополнение к отключению просмотра каталогов вы также можете запретить доступ ко всем типам файлов, за исключением нескольких. По сути, вы можете выборочно разблокировать файлы, такие как JPG, PDF, DOCX, CSS, JS и т. Д., А также отказаться от остальных. Для этого вставьте этот фрагмент кода в файл .htaccess:
# Отключить доступ ко всем типам файлов, за исключением следующих
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar)$">
Allow from all
</Files>
Вы должны создать новый файл .htaccess с кодом и вставить его в папку wp-content. Не размещайте это в базовом каталоге установки, иначе он не будет работать. Вы также можете добавить любой тип файла в список, добавив '|' после «rar». В приведенном выше списке содержатся необходимые файлы — XML, CSS и JavaScript, общие форматы изображений и документов и наиболее используемые форматы архивов.

4. Ограничить доступ wp-includes для всех

Папка wp-includes содержит только файлы, которые строго необходимы для запуска основной версии WordPress — без плагинов или тем. Помните, что тема по умолчанию находится в каталоге wp-content/theme. Таким образом, ни один посетитель не сможет получить доступа к содержимому папки wp-include.
# Блокировать wp-includes включая папку и файлы
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

5. Разрешить доступ только выбранным IP-адресам к wp-admin

Папка wp-admin содержит файлы, необходимые для запуска панели инструментов WordPress. Хорошей мерой безопасности является включение только нескольких выбранных IP-адресов для доступа к папке wp-admin. Вы можете разрешить IP-адреса людей, которым необходим доступ к панели инструментов WordPress — редакторам, модераторам и другим администраторам. Этот фрагмент кода позволяет только фиксированным IP-адресам получить доступ к папке wp-admin и запретить доступ всему остальному миру.
# Ограничить вход и администрирование по IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 302.143.54.102
allow from IP_ADDRESS_2
</Limit>
Убедитесь, что вы создаете новый файл .htaccess и вставляете его в папку wp-admin, а не в папку базовой установки.

6. Защитите wp-config.php и .htaccess от всех

Файл wp-config.php содержит наиболее важные учетные данные доступа вашего сайта WordPress. Он содержит имя базы данных и учетные данные доступа и различные другие важные данные, среди других параметров. Если вы не хотите, чтобы другие люди смотрели этот файл и отключить публичный доступ к источнику всей этой безопасности — самому файлу .htaccess. Вы можете отключить доступ к wp-config.php с помощью следующего кода:
# Запретить доступ к файлу wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
Чтобы запретить доступ ко всем файлам htaccess (помните, что некоторые из них могут находиться в папке wp-admin и других папках), используйте этот фрагмент кода:
# Запретить доступ ко всем файлам .htaccess
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

7. Запретить ссылку на изображение

Один из самых классных и нужных htaccess хаков, это запрет на использование ссылок на ваши изображения. Если кто-то использует изображения вашего сайта, ваша пропускная способность потребляется, и ваш сайт может загружаться медленнее. Этот фрагмент кода устраняет эту проблему и запретит использование изображений при обнаружении hotlink.
# Запретить использование изображения. Замените последний URL любой желаемой ссылкой на изображение.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/MlQAH71.jpg [NC,R,L]

8. Включить кеширование браузера.

Также известный как кеширование на стороне клиента, этот .htaccess взломать, чтобы включить рекомендуемые варианты кеширования браузера для вашего сайта WordPress. Вы также можете использовать его в других проектах — HTML-сайтах и ​​т.д.
# Настройка кэширования браузера
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>

9. Перенаправление на страницу техническое обслуживание

Когда вы переносите веб-сайт или выполняете какую-либо задачу обслуживания, всегда рекомендуется создать статический файл «вниз для обслуживания», чтобы информировать своих посетителей о том, что веб-сайт подвергается обновлению или техобслуживанию. Просто создайте файл maintenance.html (или любое другое имя файла) и загрузите его в базовый каталог установки WordPress. Вставьте следующий фрагмент файла .htaccess. По завершении операции обязательно удалите или закомментируйте эти строки, чтобы вернуться к общей работе. Вы можете прокомментировать, добавив '#' в начале каждой строки.
# Перенаправить весь трафик на файл maintenance.html
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L] 

10. Пользовательские страницы ошибок

Вы также можете использовать файл .htaccess для настройки и направления на пользовательские страницы ошибок, такие как 403, 404 и 500. После того как вы подготовили Вашу страницу ошибки – скажем error.html, загрузите его в директорию установки WordPress. Затем добавьте следующий фрагмент кода в ваш .htaccess файл, чтобы включить пользовательскую страницу ошибки:
# Страница пользовательской ошибки для error 403, 404 and 500
ErrorDocument 404 /error.html
ErrorDocument 403 /error.html
ErrorDocument 500 /error.html

Вывод:
Сегодня мы изучили некоторые из самых крутых htaccess хаков, чтобы укрепить ваш сайт WordPress. Я предлагаю вам попробовать каждый модуль один за другим, используя резервную копию файла .htaccess до и после тестирования каждого модуля. Это связано с тем, что файл .htaccess очень важен. Отсутствующий символ «#» или неуместный «» может уничтожить целостность вашего сайта. Если вы регулярно посещаете панель инструментов WordPress, рекомендуется не включать выборочные IP-адреса в вашу папку wp-admin.

Больше примеров вы найдете тут =>
Поделиться:

Нет комментариев