Подготовка .htaccess
Прежде всего, найдите файл . На следующем снимке экрана показано его расположение.
Очень важно сделать резервную копию .htaccess, прежде чем вносить какие-либо изменения.
Просто скопируйте файл в новую/другую папку. Характеристика Mac OS X: Mac считает все файлы с начальной точкой в имени системными файлами, включая .htaccess. Если вы перетащите такой файл на рабочий стол, он будет скрыт. Вы можете использовать небольшой виджет панели инструментов «Скрытые файлы», чтобы показывать и скрывать скрытые файлы. Виджет отлично работает как с Yosemite, так и со старыми версиями.
Обновляйте браузер после каждой модификации .htaccess, чтобы убедиться, что ваш сайт по-прежнему работает. Файлы .htaccess очень деликатны. Всего один неверный параметр может разрушить ваше присутствие в Интернете. Если это произойдет с вами, загрузите файл резервной копии. Обычно это должно решить проблему.
Позвольте им начать работу с фрагментами кода
Добавьте следующие фрагменты кода в конец файла .htaccess.
1. Запретить доступ к .htaccess извне
Чтобы защитить важный файл управления сервером .htaccess от внешних атак, мы ограничим доступ к (S)FTP.
1 2 3 4 5 | # Deny access to .htaccess and .htpasswd if in use FilesMatch "(.htaccess)"> Order deny,allow Deny from all FilesMatch> |
2. Предотвратите хотлинкинг изображений
Настоящей проблемой может стать так называемый хотлинкинг изображений. Хотлинкинг означает, что люди даже не удосуживаются загрузить изображения с вашего веб-сайта, чтобы впоследствии связать их со своей страницы. Вместо этого просто укажите путь к вашему изображению и вызовите их с вашего сайта на свои страницы, что может снизить производительность и сократить необходимую пропускную способность. С помощью следующего кода вы можете легко предотвратить внешние ссылки.
Замените «yourwebsite.com» на адрес вашего сайта. В последней строке указан путь к изображению, которое появляется вместо связанного изображения. Вы можете заменить его любым другим изображением. Некоторые действительно неприятные вещи можно сделать таким образом 😉
1 2 3 4 5 | RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourwebsite.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourwebsite.com [NC] RewriteRule .(jpg|jpeg|png|gif)$ http://i.imgur.com/g7ptdBB.png [NC,R,L] |
Имейте в виду, что если у вас есть внешний поставщик фида, такой как Feedburner, вы можете не увидеть никаких изображений в фиде.
3. Активируйте кеширование браузера
Вряд ли какой-либо другой метод настройки позволяет добиться таких же хороших результатов, как этот, с минимальными усилиями. Многие большие файлы вашего сайта практически никогда не меняются. Поэтому рекомендуется хранить их в кеше браузера. Кэшированные файлы, такие как CSS или JavaScript, загружаются быстрее, поскольку их нужно загрузить только один раз во время первого посещения. Если ваш посетитель снова возвращается на сайт (или на любой другой сайт в первый раз), браузеру не нужно перезагружать эти файлы, что повышает производительность загрузки сайта.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ## EXPIRES 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 text/html "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 1 month"
IfModule>
## EXPIRES CACHING ## |
4. Избавьтесь от IP-адресов навсегда
Вы можете захотеть удалить определенные IP-адреса, будь то из-за того, что кто-то пытался взломать учетную запись администратора или из-за того, что кто-то оставляет вредоносные (спамовые) комментарии. Если вы знаете его IP-адрес, используйте следующий код, чтобы изгнать этого человека навсегда, или, по крайней мере, его IP-адрес, или, по крайней мере, его IP-адрес, который вы знаете ;-).
1 2 3 4 5 6 | Limit GET POST>
order allow,deny
deny from 123.456.78.9
deny from 987.654.32.1
allow from all
Limit> |
Пожалуйста, имейте в виду, что вам нужно заменить IP-адреса в коде.
5. Блокировать включение только файлов
Есть некоторые действительно важные файлы, которые никогда не должны быть доступны из-за пределов WordPress. Защитите свои файлы с помощью следующего кода:
1 2 3 4 5 6 7 8 9 10 | # Block the include-only 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> |
Имейте в виду, что этот код не работает с многосайтовой установкой WordPress.
6. Защитите папку Wp-content
Папка wp-content — самая важная папка WordPress, так как она содержит ваши темы, плагины, изображения, кешированные файлы и т. д. Это делает ее главной целью для хакеров, поэтому она должна быть хорошо защищена.
Создайте отдельный файл .htaccess, добавьте следующий код и загрузите файл в папку wp-content (www.yourwebsite/wpcontent/).
1 2 3 4 5 | Order deny,allow Deny from all Files ~ ".(xml|css|jpe?g|png|gif|js)$"> Allow from all Files> |
7. Отключить интерфейс XML-RPC
С интерфейсом XML-RPC вы можете управлять WordPress с помощью внешних программ и публиковать статьи или редактировать комментарии. К ним относятся мобильные приложения для iOS, Android и др., а также Windows LiveWriter и другое программное обеспечение. Интерфейс также может быть использован для DDoS-атак, которые могут закрыть ваш сайт. Вы должны отключить интерфейс короткой записью в .htaccess:
1 2 3 4 | Files xmlrpc.php>
Order Deny,Allow
Deny from all
Files> |
Используйте приведенный выше код только в том случае, если на вашем веб-сайте нет функции блога, потому что обратные ссылки также не будут иметь доступа. Если у вас есть блог или вы хотите использовать WordPress с мобильными приложениями, используйте следующий код для защиты интерфейса:
1 2 3 4 5 6 7 8 9 10 11 12 | IfModule mod_setenvif.c>
Files xmlrpc.php>
BrowserMatch "Poster" allowed
BrowserMatch "WordPress" allowed
BrowserMatch "Windows Live Writer" allowed
BrowserMatch "wp-iphone" allowed
BrowserMatch "wp-android" allowed
Order Deny,Allow
Deny from All
Allow from env=allowed
Files>
IfModule> |
В этом примере разблокированы следующие клиенты (сверху вниз):
- Плакат
- Блоги WordPress
- Средство записи Windows Live
- WordPress для iOS
- WordPress для Android
Удалите клиентов, которые вам не нужны. Вы также можете добавить новые пользовательские агенты и разблокировать их.
Источник: Сергей Мюллер — Защита XML-RPC-интерфейса WordPress с помощью .htaccess
8. PHP — Блокировать отчеты об ошибках
Это очень важный момент. Когда PHP отправляет отчет об ошибке, путь к файлу становится видимым. Сергей Мюллерс описывает это следующим образом:
«В блогах WordPress довольно легко (косвенно) создайте ошибку PHP, чтобы получить отчет об ошибке и путь, не будучи администратором или экспертом. Вызов определенных файлов ядра или плагинов WordPress в адресной строке браузера приводит к фатальным ошибкам PHP (поскольку отсутствуют необходимые и упомянутые функции WordPress). Если настройки сервера или PHP позволяют отображать ошибки, они появятся в браузере. Вряд ли кто-то может расшифровать отчеты об ошибках, но они являются ценной информацией для хакеров, которые могут найти дыры и использовать их в полной мере».
Решите эту проблему простым добавлением в файл .htaccess:
1 | php_flag display_errors Off |
Последнее, не менее важное
Вам также следует заблокировать некоторые важные файлы от доступа извне по той простой причине, что доступ к этим файлам нужен только вам. Последний фрагмент кода защищает ваш веб-сайт от эксплойтов URL — атак на основе URL. Я использую этот код для всех своих сайтов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | # ---------------------------------------------------------------------- # Important safety settings # ---------------------------------------------------------------------- #Block important files from outside access files install.php> Order allow,deny Deny from all files> files wp-config.php> Order allow,deny Deny from all files> # PROTECT readme.html files readme.html> Order Allow,Deny Deny from all Satisfy all Files> # PROTECT readme.html for DE edition Files readme.html> Order Allow,Deny Deny from all Satisfy all Files> files error_log> Order allow,deny Deny from all files> # Block URL based exploits RedirectMatch 403 [ IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # Ban double slashes in all URLs RewriteCond %{THE_REQUEST} ^[A-Z]+ /(([^/ ]+/)*)/+([^ ]*) RewriteRule ^ /%1%3 [L,R=301] IfModule> |
Заключение
С помощью этих фрагментов кода вам потребуется всего несколько минут, чтобы сделать ваш сайт WordPress более безопасным и быстрым. Хотя хакерам будет сложно атаковать ваш веб-сайт, ваши читатели могут наслаждаться более высокой производительностью загрузки; благодаря активному кэшированию браузера.
Ссылки по теме
(дпе)