.htaccess wordpress закрываем дыры

PHP обработчик —> Apache

Для одиночной установки:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

1. Защита важных файлов

Запретите доступ к файлам wp-config.php, htaccess, php.ini и логам ошибок. Добавьте это правило, чтобы запретить доступ к этим файлам:

<FilesMatch "^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$">
Order deny,allow
Deny from all
</FilesMatch>

Если вы хотите запретить доступ ко всем файлам .htaccess на сайте, добавьте этот код:

# запретить доступ ко всем .htaccess файлам
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

# ограничение доступа к ПУ только ручным вводом адреса
ErrorDocument 401 /путь-к-вашему-сайту/index.php?error=404
ErrorDocument 403 /путь-к-вашему-сайту/index.php?error=404

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} !^http://(.*)?ваш-сайт.ru [NC]
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteRule ^(.*)$ - [F]
</IfModule>

#Включает отслеживание сим-ссылок
Options +FollowSymLinks

#Запускает url_rewriting
RewriteEngine On

#Блокирует все ссылки, содержащие <script>
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]

#Блокирует все скрипты, которые пытаются изменить переменные PHP Globals:
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]

#Блокирует все скрипты, которые пытаются изменить переменную _REQUEST:
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})

#Перенаправляет все подобные попытки на страницу с ошибкой 403 - запрещено
RewriteRule ^(.*)$ /403.html [F,L]

#Disable site folders browsing
Options All -Indexes

2. Запретите доступ к директориям сайта

По умолчанию сервер Apache разрешает доступ к директориям сайта. То есть любой посетитель сайта может открыть любую папку и запустить любой файл внутри этой папки, если введет в браузере нужный адрес, например, ваш-сайт.ru/wp-content/uploads/. Если эти папки будут доступны для просмотра, злоумышленник может заразить какие-то файлы на вашем сервере. Чтобы запретить доступ к папкам, добавьте это правило в .htaccess:

#Disable site folders browsing
Options All -Indexes

3. Доступ только к разрешенным типам файлов

В папке wp-content находятся темы, плагины и медиа контент. Кроме доступа к директориям сайта, можно разрешить доступ только к некоторым типам файлов, например, css, js, jpg, pdf, doc и так далее. Для этого создайте в папке wp-content новый файл .htaccess и добавьте это правило:

# запрет доступа ко всем файлам, кроме:
Order deny,allow
Deny from all
<Files ~ ".(css|js|xml|jpe?g|png|gif|pdf|zip|rar|docx|rtf|odf)$">
Allow from all
</Files>

4. Запретите доступ с определенных IP

Вы можете полностью запретить доступ к сайту с подозрительных или вредоносных ip:

# Block IP addresses.
order allow,deny
deny from 164.186.15.0/24
deny from 124.153.34.144
allow from all

5. Запретите доступ к PHP файлам

Закройте доступ к PHP файлам темы и плагинов. Могут внедрить вредоносный код и заразить сайт. Заблокировать доступ неавторизованных пользователей к php файлам темы и плагинов:

# запретить доступ к PHP файлам
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L]
RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

6. Запретите исполнение PHP файлов

Если хакеру удастся загрузить вредоносные файлы на сервер, он не сможет их запустить, потому что это правило запрещает их исполнение. Но вам все равно нужно будет найти и удалить инфицированные файлы. Чем больше препятствий взломщику вы установите, тем ниже вероятность что ваш сайт взломают. Обычно хакеры загружают бэкдоры в папку /wp-content/uploads/, поэтому заблокируйте исполнение всех PHP файлов в этой папке:

# Disallow php execution in Uploads
<Directory "/var/www/wp-content/uploads/">
<Files "*.php">
Order Deny,Allow
Deny from All
</Files>
</Directory>

7. Запрет загрузки изображений с сайта на сторонних серверах

 

Options +FollowSymlinks
#Запрещает кражу картинок
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?mysite.ru/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://mysite.ru/images/stop_stealing.gif[nc]

http://mysite.ru/images/stop_stealing.gif -будет транлироваться на внешних серверах.

8. Запрет доступа к конкретному файлу

Запрет доступа ко всем файлам с конкретным расширением
Если необходимо запретить доступ ко всем файлам с определенным расширением (типом), то применяйте следующий набор команд:

<Files "\.(txt)$">
Order Deny,Allow
Deny from all

 

Источники:

https://techbear.ru/redaktirovanie-fayla-htaccess-dlya-bezopasnosti-wordpress/

 

Довольны?
[Оценок: 0 средняя: 0]