ВОЙТИ
    opened image

     

     

    WordPress, одна из самых популярных систем управления контентом, часто становится мишенью для хакеров. Поэтому важно уделить должное внимание безопасности вашего сайта. Один из ключевых инструментов для защиты WordPress - это файл .htaccess, который позволяет управлять множеством аспектов веб-сервера. В этой статье мы рассмотрим различные методы усиления безопасности WordPress с помощью .htaccess.

     

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


    Некоторые файлы WordPress, такие как wp-config.php и .htaccess, содержат важные настройки. Защита этих файлов от несанкционированного доступа критически важна.

     

    • Добавляем нужные правила сразу после стандартных директив WordPress.

     

    Добавляем в .htaccess следующие строки:

     

    # Deny access to wp-config.php, xmlrpc.php, readme.html, license.txt, htaccess|htpasswd files
    <FilesMatch "^.*(wp-config\.php|xmlrpc\.php|readme.html|license.txt|\.[hH][tT][aApP].*)$"> 
    Order deny,allow
    Deny from all
    </FilesMatch>

     

     

    Запрет доступа к содержимому каталога wp-includes

     

    Этот каталог содержит важные системные файлы WordPress. Чтобы защитить его, добавьте следующий код:

     

    # Block wp-includes folder and files
    <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-content


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

     

    # Disable access to all file types except the following
    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>

     


    Запрет на выполнение PHP-файлов в каталоге wp-content/uploads


    Для предотвращения выполнения потенциально вредоносных PHP-скриптов в каталоге uploads, добавьте:

     

    # Kill PHP Execution
    <Files *.php>
    deny from all
    </Files>

     


    Отключение просмотра/листинга содержания каталогов


    Скрытие структуры файлов вашего сайта увеличивает его безопасность. Для этого добавьте:

     

    # Disable directory browsing
    Options All -Indexes

     

     


    Ограничение доступа к админ-панели WordPress


    Ограничение доступа к административной панели по IP-адресу - эффективный способ защиты. Пример кода:

     

    # Limit logins and admin by IP
    <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>

     


    Запрет доступа к сайту с определенных IP-адресов


    Этот метод помогает блокировать известных вредоносных пользователей:

     

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

     

    Здесь указываются IP-адреса (или диапазоны адресов), для которых будет запрещён доступ к сайту. Замените IP_ADDRESS_1, IP_ADDRESS_2 на конкретные IP-адреса, которые нужно заблокировать.

     

     

    Защита от Hotlink


    Предотвратите использование изображений вашего сайта на других ресурсах:

     

    # Prevent image hotlinking script.
    RewriteEngine on 
    RewriteCond %{HTTP_REFERER} !^$ 
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
    RewriteRule \.(jpg|jpeg|png|gif)$ http://www.yourwebsite.com/hotlink.png [NC,R,L]

     

     

    • RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]: Это условие проверяет, что запрос не пришёл с вашего собственного сайта (или его вариаций с www и без). [NC] означает "без учёта регистра" (No Case).

    • RewriteRule \.(jpg|jpeg|png|gif)$ http://www.yourwebsite.com/hotlink.png [NC,R,L]: Это правило перенаправляет все запросы к изображениям с расширениями jpg, jpeg, png, gif, которые не соответствуют предыдущим условиям, на определённое изображение (hotlink.png) на вашем сайте. 

     

     


    Отключение вывода ошибок


    Скрывая информацию об ошибках, вы уменьшаете риск использования этих данных хакерами:

     

    php_flag display_errors Off

     

    Оптимизация производительности

     

    Кеширование браузера позволяет повторно использовать загруженные ресурсы (как изображения, CSS и JavaScript файлы), что существенно снижает время загрузки для повторных посетителей вашего сайта. Для активации кеша браузера, добавьте следующие строки в ваш файл .htaccess:

     

    # Setup browser caching
    <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 application/javascript "access 1 month"
    ExpiresByType text/x-javascript "access 1 month"
    ExpiresDefault "access 1 month"
    </IfModule>
    

     

     


    Включение сжатия

     

    Сжатие файлов уменьшает их размер, что в свою очередь ускоряет загрузку страниц. Это особенно важно для пользователей с медленными интернет-соединениями. Для активации сжатия, внесите следующие изменения в .htaccess:

     

    # Setup compression
    <IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    </IfModule>
    

     

     

     

    Включение страницы обслуживания и пользовательских страниц ошибок

     

    Страница обслуживания — это временная страница, которая отображается посетителям вашего сайта во время проведения технических работ или обновлений. Она информирует посетителей о том, что сайт временно недоступен, и помогает избежать путаницы или недопонимания со стороны пользователей. Для включения страницы обслуживания, добавьте в ваш .htaccess следующий код:

     

    # Redirect all traffic to maintenance.html file
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !/maintenance.html$
    RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
    RewriteRule $ /maintenance.html [R=302,L]
    

     

     

    Этот код перенаправляет всех посетителей на maintenance.html, за исключением запросов, исходящих с IP-адреса 123.123.123.123 (здесь вы можете указать свой IP-адрес, чтобы иметь доступ к полной версии сайта во время обслуживания).

     

    • Эти методы улучшают взаимодействие пользователя с сайтом в случае возникновения ошибок или проведения технических работ.

     

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