AdSense-web

16 февраля 2014

Как защитить файл .htaccess в WordPress?

Данная заметка написана на основе тестирования соответствующего базового параметра безопасности плагина Better WP Security. Настройка необходимых мер безопасности производится путем внесения дополнительных записей и корректив в файл настройки сервера Apache - .htaccess (hypertext access). Данные меры безопасности ограничат публичный доступ к файлам readme.html, readme.txt, wp-config.php, install.php, .htaccess и каталогу wp-includes.

12. Your .htaccess file is NOT secured. Нажмите, чтобы исправить.
Параметр выделен синим цветом, что означает его не критичность, но, по-возможности, уровень безопасности желательно повысить. Нажимаем на ссылку исправления и попадаем на уже знакомую нам вкладку "Tweaks", прямо в раздел серверных настроек (Server Tweaks) плагина Better WP Security. Опция "Защита файлов" предотвращает публичный доступ к файлам readme.html, readme.txt, wp-config.php, install.php, .htaccess и каталогу wp-includes. Эти файлы могут предоставить важную информацию о вашем сайте злоумышленнику, сразу после успешной установки WordPress. Внимание: эта функция как известно вызвать конфликт с некоторыми плагинами и темами!

После включения функции защиты файлов, на вкладке "Detect" плагина, нажал на кнопку ручной проверки наличие измененных файлов и папок. Плагин показал изменения в двух файлах - wp-config.php и .htaccess.

В файл .htaccess добавился код:

# BEGIN Better WP Security

<files .htaccess>
Order allow,deny
Deny from all
</files>

<files readme.html>
Order allow,deny
Deny from all
</files>

<files readme.txt>
Order allow,deny
Deny from all
</files>

<files install.php>
Order allow,deny
Deny from all
</files>

<files wp-config.php>
Order allow,deny
Deny from all
</files>

RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteCond %{SCRIPT_FILENAME} !^(.*)wp-includes/ms-files.php
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]

# END Better WP Security

Для проверки как именно изменилось отображение файла в браузере, в адресной строке набрал мойсайт/.htaccess и получил ошибку 403 Forbidden. Для сравнения, набрал тот же путь на другом сайте, с пустым файлом .htaccess и на том же хостинге. Но и в этом случае доступ к файлу не получил, отобразилась ошибка 403. Вероятно, настройки сервера и так защищают файл по умолчанию.

Если набрать в браузере адрес файла "readme.html", который также находится в корневой директории сайта, отобразится ненужная обычному пользователю, но полезная для злоумышленника информация, такая как версия WordPress. Данный файл с вышеприведенным кодом защиты в .htaccess не отображается и выдаёт ошибку 403 Forbidden.

При наборе в адресной строке файла "wp-config.php", отображается пустая белая страница браузера. Я так понимаю, файл каким-то образом защищён. Соответственно, на сайте с кодом защиты в .htaccess выдаёт ошибку 403 Forbidden.

Что касается файлов "readme.txt" и "install.php", так они вообще отсутствуют в корневом каталоге установленного сайта WordPress.

Учитывая, что доступ к файлу .htaccess итак защищен, файл wp-config.php мы определили на уровень выше папки public_html, а остальные файлы, вообще, удаляются за ненадобностью, то интерес здесь представляет только код защиты папки wp-includes.

Следующий, для рассмотрения параметр безопасности, это защита сайта Wordpress от сканирования злоумышленниками на наличие уязвимостей.


Комментариев нет:

Отправить комментарий