Да се погрижим за сигурността на WordPress

wordpress сигурност

Здравейте, приятели! В тази статия ще ви дам съвети за подобряване на вашата WordPress сигурност. Системата за управление на съдържание WordPress е най-популярната платформа за създаване на сайт, а също и факта, че WordPress има отворен изходен код, безусловно привлича вниманието на хакерите към нея. Затова не е излишно допълнително да се погрижите за безопасността на вашата любима CMS.

Какво прави WordPress толкова популярна CMS

  • Безплатна е.
  • Лесна е за усвояване и има интуитивно ясен интерфейс.
  • Не е сложно да се създаде тема за всякакъв вид сайт.
  • Наличие на голямо количество теми и разширения.
  • Поддръжка и редовни обновления.

Поради голямата популярност на WordPress и множеството сайтове които работят под нейно управление, я прави честа цел за хакерски атаки. А ако се добави и открития изходен код, то хакерите както се казва, имат всички козове в ръцете си.

Именно за това няма да са излишни всякакви съвети, помагащи да повишите вашата WordPress сигурност. Веднага ви казвам, че използването на тези и други съвети на практика няма да ви дадат 100% гаранция за защита на вашия сайт от хакерски атаки. Но все пак ще направят вашия блог много по-устойчив срещу хакерски атаки.

В Интернет има много статии за WordPress сигурност, но доста често имам чувството, че авторите просто не проверяват или не обръщат внимание на някой несъответствия. Други съвети пък могат да бъдат безсмислени, а някой противоречиви и двусмислени.

В тази статия искам да ви покажа най-добрите съвети и решения за безопасност на WordPress.

ВНИМАНИЕ! Преди да правите промени по файловете на вашата тема, свалете копие на оригиналните файлове на вашия компютър! Така, ако нещо се обърка ще може да качите бекъп файловете!

  1. Безопасност на системата

Практически всички съвети започват с обновяване на WordPress и нейните компоненти. Но нали всъщност вашата wordpress сигурност трябва да започва от работното място. Голям процент от заразяването с вируси се случва по вина на ползвателя, които управлява сайта.

Затова е важно да следвате следните прости правила:

  • На вашия компютър трябва да има инсталиран антивирус който редовно обновява базата си със данни за вируси. Няма да бъде излишно да правите периодично сканиране на вашата система за наличие на вируси.
  • Не съхранявайте паролите в текстови файлове или документи на вашия хард диск. За съхранение на паролите използвайте софтуер, който специално е предназначен за това – мениджъри на пароли.
  • Използвайте сложни пароли, състоящи се от не по-малко от 6 символа. Като паролата не трябва да е взета от речник, а трябва да е набор от символи. В идеалния случай паролата трябва да съдържа големи и малки букви, цифри и символи. Споменатите мениджъри на пароли обикновено имат възможност да генерират автоматично пароли които може да използвате.
  • За работа с хостинга, на който е разположен сайта, вие често използвате FTP програма, например FileZilla. В статия „Как да сваляте, качвате и редактирате файлове с ftp програмата FileZilla“ може да прочетете как да работите с FileZilla. Старайте се да съхранявате паролите не в ftp програмите които използвате, а в споменатите мениджъри на пароли.
  1. Обновление на WordPress
  • Това е стандартен съвет, който не трябва да пренебрегваме. Разработчиците на WordPress се стараят оперативно да затварят намерените уязвимости и слаби места, като пускат нови версии. Затова със излизане на нова версия на WordPress, не се бавете със обновяването на ядрото. Също не трябва да забравяте да обновявате и разширенията които използвате.
  • Няма да е излишно да се спомене, че самия WordPress трябва да се сваля само от официалния сайт. Плъгините (разширенията)също, по възможност трябва да се свалят от официалния сайт. Използвайте колкото се може по-малко странични скриптове, модули и разширения.
    В самия WordPress уязвимостите обикновено са малко, основно те идват от добавките, както официални, така и неофициални. Ако може да се реши някаква задача без използване на плъгин, то това ще бъде най-доброто решение. Да не говорим, че всеки плъгин малко или много допълнително натоварва вашия сайт.
  1. Ключове за безопасност

При инсталация на WordPress следва да се отдели внимание на конфигурационния файл wp-config.php. Освен със попълването на данните за свързване със базата данни, много хора забравят да попълнят още 8 константи, в които се съхраняват ключовете за идентификация. Добре е да бъдат попълнени и за да не се налага да ги измисляте, разработчиците предлагат да ги генерирате автоматично от този сайт. След което просто копирате генерираните ключове за безопасност и ги поставяте във вашия файл wp-config.php:

wp secret keys

  1. Файл wp-config.php
  • Също може да се погрижите за безопасността на самия конфигурационен файл. Всички знаят къде се намира този файл и в него е записана цялата информация за достъп до базата данни на сайта. И разбира се, хакера ще търси начин за достъп до wp-config.php. Нашата задаче е да го скрием от тези, които ще поискат да получат достъп до него.
    За начало може да пробвате най-простия начин – просто да преместите конфигурационния файл едно ниво по-нагоре във вашия сървър. WordPress по подразбиране търси файл wp-config.php в корена на вашия сайт, и ако там го няма, то се опитва да намери файла в по-високото ниво на вашия сървър. Ако след преместване на файла сайта не работи, върнете го обратно и опитайте втория начин.
  • В корена на сайта, там където се намира wp-config.php трябва вече да се намира файл .htaccess – отворете го в текстов редактор. Ако няма такъв файл, то го създайте. При създаване и запазване на файла обърнете внимание на това, че за тип на файла да е избрано All types:

.htaccess

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

# забраняваме достъпа до файла за конфигурация wp-config.php
<files wp-config.php>
order deny,allow
deny from all
</files>

Със този код забраняваме достъпа до конфигурационния файл и ако някой се опита да го отвори във браузър, сървъра ще показва грешка 403 – достъпа е забранен.

  1. Грешки при влизане в сайта

Един от начините за разбиване на сайтове е баналния подбор на паролата на администратора. Нужно е да се знае и логина на акаунта за който се търси паролата. И при грешно въвеждане на логин и/или парола WordPress ви съобщава какво конкретно е сгрешено, това разбира се е вежливо, но доста неправилно.

wordpress login errorwordpress error login

Това може да се поправи като сложите във файл functions.php следния код:

add_filter("login_errors", "my_login_errors");
function my_login_errors(){
    return "Грешни данни за вход";
}

Вече при въвеждане на данни за вход ще получаваме един и същи отговор – „Грешен логин или парола“. Така хакера няма да знае какво не е въвел вярно.

Но това не решава проблема напълно, защото при правилно въвеждане на име за логин, то не се трие във формата за вход! Така предишната стъпка става напразна. Но и за този проблем има изход.

Отворяме файл wp-login.php във корена на сайта и търсим този ред:

<input type="text" name="log" id="user_login"<?php echo $aria_describedby_error; ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" /></label>

Пишем две наклонени черти // пред echo esc_attr ($user_login);, за да не се показва името за логин ако е въведено правилно. Ще се получи това:

<input type="text" name="log" id="user_login"<?php echo $aria_describedby_error; ?> class="input" value="<?php //echo esc_attr( $user_login ); ?>" size="20" /></label>

Вече при правилно въведено име за логин, то ще се изчиства от формата.
Не забравяйте след обновяване на WordPress да направите това действие отново, защото при обновяване файл wp-login.php ще бъде презаписан!

  1. Скриваме версията на WordPress

В изходния код WordPress показва инсталираната версия. В мета таговете може да намерите такъв ред:

<meta name="generator" content="WordPress 3.5.1" />

Този ред може да се среща даже два пъти, в зависимост от инсталираната тема. Разбира се е хубаво да скриете текущата версия на WordPress от очите на потенциалните хакери, защото както знаете всяка версия си има определени уязвимости и слаби места, които се отстраняват във следващите версии.

Класическия съвет за премахване на версията от мета данните на сайта се състои в добавянето на определен код. Отваряме файл functions.php и добавяме в него следния код:

remove_action('wp_head', 'wp_generator');

Или във папката със активната тема във файл header.php може да изтриете следния код:

<meta name="generator" content="WordPress <?php bloginfo ('version'); ?>" /> <!-- Leave this for stats please -->

И щом сте решили да скриете версията на WordPress, то не забравяйте да изтриете от корена на сайта файл readme.html, във който е посочена версията на WordPress… или може да промените името на файла, като така да объркате потенциалния хакер.
Не забравяйте след обновяване на WordPress до по-нова версия, да изтриете файла отново!

  1. Преглеждане на директории

Някои хостинг компании позволяват преглеждане на директориите в сайта (папките на сайта), но ние не искаме лошите хора да могат да го правят, нали? Затова е нужно да затворим тази пробойна. Отворете файл .htaccess и добавете в него това:

# забраняваме показването на папката images със каталозите
Options -Indexes
  1. Защита на файла за настройки wp-config.php

По горе писах, че във файл wp-config.php са записани всичките данни за достъп до базата данни на сайта, а това са логин, парола и име на базата данни. За да не може лоши хора да получат достъп до този файл за настройки на WordPress, трябва да поставим защита за него във файл .htaccess. Отворете го със текстов редактор и сложете следния код:

order allow,deny
deny from all
  1. Защитаваме WordPress от вредоносни скриптове

Някой злосторник може да напише вредоносен скрипт, който ще изпрати със форма в сайта във вид на въпрос. За да се пресичат от корен такива вредоносни действия, е нужно те да се проверяват, няма ли в тях скрипт или променливи. Затова на нов ред във файл .htaccess добавяте този код:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
  1. Използване на SSL

Използване на SSL (кодиран) протокол за защита на предаваните данни между ползвателя и сървъра.

Плъгини за по-добра WordPress сигурност

  1. iThemes Security

Този плъгин предлага цялостна защита на вашия блог, като силно повишава вашата wordpress сигурност:

  • Скрива жизнено важни области във вашия сайт, защитава достъпа до важните файлове.
  • Предотвратява brute-force логин атаки.
  • Сканира вашия сайт и ви съобщава за слабите места в сигурността.
  • Засича ботове и други опити за атака.
  • Наблюдава системата и ви съобщава за неоторизирана промяна на файловете.
  • Може да прави бекъп на вашата база данни.
  • Може да промените нормалния URL адрес на админ панела, също и името с което влизате в админ панела на някакъв друг.
  • Може да блокира за определено време (вие в настройките избирате, след колко грешни опита и за колко време ip адреса да се блокира) ip адреси след няколко грешно въведени данни за вход и много други полезни настройки за сигурност.
  1. WP Database Backup

Плъгин който прави автоматичен бекъп на вашата база данни. Може да изберете например бекъпа да се изпраща на вашия имейл адрес, а също и колко често да се прави.

  1. Limit Login Attempts или Login LockDown

Плъгини, с помощта на които може да ограничите количеството на грешните опити за вход в админ панела на WordPress. А също може да блокирате автоматично за определено време ip адресите на тези, които няколко пъти подред са въвели грешни данни за вход.

  1. Stealth Login

С помощта на този плъгин може да скриете страницата за вход във админ панела от лошите хора. Например, вместо стандартната страница за вход – вашия_сайт.com/login.php, може да поставите например такъв адрес – вашия_сайт.com/admin или някой друг. Това зависи от вашата фантазия и нужди.

Заключение

Това е списъка на основните съвети, хакове и плъгини които може да използвате за усилване на вашата WordPress сигурност. Ако знаете други съвети и хакове, които използвате, може да ги споделите в коментарите.

С уважение, Николай Томов.

Хареса ли ви статията? Споделете я с приятелите:

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *