Вместо того, чтобы защищать WordPress с помощью разнообразных плагинов, которые значительно нагружают систему, лучше подняться на один уровень вверх и защитить сайт на уровне веб-сервера при помощи .htaccess
Стандартный .htaccess файл для WP. Располагается в корневой директории. Все изменения вносить после этих строк.
1 2 3 4 5 6 7 8 9 10 |
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress |
Запрет стороннего доступа к определённым файлам WordPress: wp-config.php, xmlrpc.php, readme.html, license.txt, htaccess|htpasswd files
1 2 3 4 |
<FilesMatch "^.*(wp-config\.php|xmlrpc\.php|readme.html|license.txt|\.[hH][tT][aApP].*)$"> Order deny,allow Deny from all </FilesMatch> |
Запрет доступа к сайту с определённых IP-адресов
1 2 3 4 5 |
<Limit GET POST> order allow,deny deny from IP_ADDRESS_1, IP_ADDRESS_2 allow from all </Limit> |
Отключение возможности просмотра содержимого директорий
1 |
Options All -Indexes |
Запрет просмотра (как следствие — исполнения) php файлов в какой-либо директории. Иногда актуально для директории wp-content/uploads
1 2 3 |
<Files *.php> deny from all </Files> |
Закрытие доступа ко всем файлам, кроме файлов с указанными расширениями. Актуально для директории wp-content
1 2 3 4 5 |
Order deny,allow Deny from all <Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar|ttf|woff|woff2|mp4|mp3)$"> Allow from all </Files> |
Запрет доступа к определённым файлам: wp-config.php, xmlrpc.php, readme.html, license.txt, htaccess|htpasswd files
1 2 3 4 |
<FilesMatch "^.*(wp-config\.php|xmlrpc\.php|readme.html|license.txt|\.[hH][tT][aApP].*)$"> Order deny,allow Deny from all </FilesMatch> |
Закрыть доступ к содержимому директории wp-includes
1 2 3 4 5 6 7 8 9 |
<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> |
Разрешить доступ к админ-панели (файл wp-login.php и директория /wp-admin/) только с определённых адресов
1 2 3 4 5 6 7 8 |
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR] RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ RewriteCond %{REMOTE_ADDR} !^111.111.111.111$ RewriteCond %{REMOTE_ADDR} !^112.112.112.112$ RewriteRule ^(.*)$ - [R=403,L] </IfModule> |
Свежие комментарии