12 съвета за защита на вашия Wordpress блог
Wordpress е една от най-популярните безплатни платформи за създаване и управление на дневници (или т.н. блогове). За съжаление, никой софтуер не е защитен от възможността за поява на пропуск в сигурността. Екипът на Wordpress се стреми да ги оправя навреме, но от вас зависи дали ще обновявате блога си. Ако забравите или умишлено отлагате обновяването, рискувате някой ден да останете неприятно изненадан зареждайки дневника си и в най-лошия случай откривайки, че всичката ви информация е изчезнала. Не се залъгвайте, че никой не се интересува от вашия малък и скътан дневник. Бъдете подготвени за най-лошото, но се надявайте за най-доброто.
В тази статия ще ви представя 12 съвета как да направите вашия Wordpress блог по-сигурен и защитен. Разбира се, имайте предвид, че нищо не може да ви предпази от пробив чрез нерегистриран проблем в сигурността. Също така, атака може да възникне и от инсталиран плъгин, който има слабости в сигурността.
Преименувайте admin потребителя
Веднага след инсталацията е препоръчително да смените името на администратора. То е admin и по подразбиране е такова за всички инсталации. Смяната можете да направите през командния ред на MySQL клиент или ползвайки приложение като PhpMyAdmin, което се предоставя безплатно с повечето хостинг пакети.
Командата, която трябва да изпълните е следната:
update tableprefix_users set user_login='newuser' where user_login='admin';
tableprefix по подразбиране е wp, ако не сте го сменили.
Сменете паролата по подразбиране
Паролата, която Wordpress генерира при първоначалната инсталация е сравнително слаба. Тя се състои от 6 символа и то само от числа и букви. Съществуват приложения чрез, които може да се направи атака и такава слаба парола да бъде открита сравнително лесно. Направете паролата по-сложна, поне от 10 знака. Освен букви и цифри, използвайте и други знаци.
В тази връзка, за защита от продължителни последователни атаки, инсталирайте плъгина LoginLock, чрез който автоматично можете да блокирате IP адрес при определен брой неуспешни опити за влизане в административната част на вашия блог.
Изтриите ненужните файлове
След инсталация или обновяване има два файла, които няма да ви трябват повече. Рядко могат да ви създадат проблем, но за всеки случай е добре да ги изтриете. Това са install.php и upgrade.php. Намират се в папката wp-admin.
Използвайте лимитиран потребител
Създайте си отделен потребител с по-ниски права на достъп, който да използвате за публикуване. Този подход не само ще гарантира сигурността на дневника, ако някой се сдобие с името и паролата ви, но ще ви предпази и от самите вас.
Премахване на версията от header.php
Ако ползвате стара версия на Wordpress с известни пропуски в сигурността, не е много размуно номерът на версията да се вижда публично.
Кодър в header.php,който показва версията е:
<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />
За да скриете версията, можете просто да изтриете този ред или да го промените по следния начин:
<meta name="generator" content="WordPress" />
Забележка: Имайте предвид, че версията се показва не само в header.php, а и в rss хранилнката например, а и в няколко други файла. За повече информация вижте по-надолу WordPress Online Security Scanner.
Защита на папка wp-admin
Ограничаване по IP адрес
Единият вариант да ограничите достъпа до администрацията на вашия блог е да посочите изрично кои IP адреси могат да имат достъп. Това става чрез .htaccess файл, който трябва да сложите в директория wp-admin. Неговото съдържание трябва да бъде подобно на това:
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Access Control"
AuthType Basic
order deny,allow
deny from all
# домашен IP адрес
allow from 64.233.169.99
# работен IP адрес
allow from 69.147.114.210
allow from 199.239.136.200
Този метод определено е много добър за защита, но е и неудобен, ако нямате статичен IP адрес или ако често пътувате и искате да обновявате блога си в движение. За тази цел, много по-удобен е вариантът със защитата с име и парола.
Ограничаване с име и парола
Защитата с име и парола ви позволява да имате достъп до администрацията от всяко кътче на Земята, но добавя второ, допълнително ниво на сигурност. При този вариант отново се използва .htaccess файл. Но този път имаме и един допълнителен файл .htpasswd.
Създайте .htaccess файл в директория wp-admin и напишете следното:
AuthUserFile /home/username/.htpasswd
AuthGroupFile /dev/null
AuthName Blog
AuthType Basic
require user xxxx
Особеностите в този файл са две. Първо, на мястото на xxxx въведете името, с което желаете да влизате (това име НЕ Е името на администраторския ви акаунт). Второ, на реда AuthUserFile виждате, че е зададен път до файла .htpasswd. Тъй като .htpasswd съдържа паролата за достъп, то трябва да сложите този файл извън публичната ви директория (често тя се нарича PUBLIC_HTML, но може и да е с друго име) на хостинга. Ако не сте сигурни, консултирайте се с хостинг доставчика, коя директория е публична и коя не.
Съдържанието на файла .htpasswd е:
xxxx:yyyy
, където xxxx е името, с което желаете да влизате (същото име, което сте написали и в .htaccess), а yyyy е паролата. Ако всичко е успешно, при опит за вход в администрацията ще се появи диалогов прозорец, който ще ви подкани да въведете име и парола.
Уточнение – тези варианти за защита на wp-admin са приложими само, ако регистрирането на потребители е забранено, тоест само вие (или малък кръг от доверени хора) ползвате администрацията.
И един допълнителен съвет – за да спрете търсачките да обхождат директория wp-admin, в главната директория на вашия блог създайте файл robots.txt и напишете това:
Disallow: /wp-admin/
Защита на папка wp-content
Защита с празен index.html
Създайте празен файл с име index.html и го сложете в папка wp-content и в папка wp-content/plugins, за да предотвратите разглеждането на съответните папки. Можете да сложите празен файл и в другите подпапки стига там да няма файл със същото име, но с друго предназначение.
Защита с .htaccess
Най-лесният и бърз начин да забраните разглеждането на дадена директория и нейните поддиректории е да използвате .htaccess файл. Създайте такъв файл със следното съдържание:
Deny from all
<Files ~ ".(css|jpe?g|png|gif|js|zip|rar|pdf|xsl|ico)$">
Allow from all
</Files>
и го сложете в директория wp-content. Така не само предпазвате текущата директория от разглеждане, но блокирате и всички опити за зареждане на файлове с изключение на тези с упоменато разширение.
Защита на папка wp-includes
Защита с празен index.html
Създайте празен файл с име index.html и го сложете в папка wp-includes, за да предотвратите разглеждането й. Можете да сложите празен файл и в другите подпапки стига там да няма файл със същото име, но с друго предназначение.
Защита с .htaccess
Отново, най-добрият начин за защита на wp-includes е с използване на .htaccess файл. Можете да използвате същия файл както този при wp-content. При мен за съжаление ползвайки същия файл, спря да работи текстовият редактор TinyMCE.
Решението на проблема е вместо да използвате блокиране на заявки за зареждане на файлове, просто да забраните разглеждането на директорията. Това става като в .htaccess напишете следното:
Options -Indexes
Изключително бърз, лесен и ефективен начин за защита.
Използвайте сигурна връзка към сървъра
По възможност използвайте SSH вместо FTP. Това е може би един от най-трудните за изпълнение съвети, но същевременно един от най-важните. Първо, свържете се с хостинг доставчика си и се уверете, че има включен SSH. Обикновено FTP връзката не е защитена и името и паролата на ftp акаунта ви се предават във вид на чист текст. По този начин, ако някой се добере до тази информация, може да получи достъп до файловете ви и да нанесе достатъчно вреди. Ползвайки SSH, цялата комуникация между вас и сървъра е защитена.
WordPress Online Security Scanner
Този плъгин от Blog Security прави проверка на версията и показва възможните уязвимости в даден блог, включително уязвимости в използваната тема и инсталираните плъгини.
Правете редовна профилактика
Редовно правете резервни копия на файловете и на базата от данни, в случай че се наложи да възстановявате информация.
Следете редовно бюлетина на Wordpress
На адрес http://wordpress.org/development/ се публикува информация свързана с Wordpress, най-новите версии, отстранени пропуски в сигурността и друга полезна информация.
За финал
И накрая – не забравяйте да обновявате редовно.
Събрал съм изброените съвети в един PDF файл. Можете да го изтеглите от следния адрес.
Използвани източници:
- WordPress Security Whitepaper от BlogSecurity.net;
- Three tips to protect your WordPress installation от Matt Cutts;
- Hardening Wordpress от Wordpress.org;
- 8 Security Tips and Guidelines for your WordPress Blog от Online Tech Tips.
Спонсорирани връзки:
Подобни публикации:
- Wordpress secret key
- Wordpress upload проблеми
- Wordpress 2.4 => 2.5
- Как да си направя шаблон за публикуване във Wordpress
- Забележки към Wordpress
- WordPress Suicide
- Обновен превод на All in One SEO Pack
- Blue Chillout Space – Wordpress theme
- Български превод на Google Sitemap Generator
- 7 съвета преди снимане

Полезни съвети, благодаря!
Забележка: Имайте предвид, че версията се показва не само в header.php, а и в rss хранилнката например, а и в няколко други файла.
Например във wp-login.php — писах за това вече в коментар на оригиналния пост на Мат Кътс
Поздравления, много добър материал !
web-bg, oggin – благодаря.
Калояне, правилно, версията се показва и в този файл. WordPress Online Security Scanner показва и всички останали места, където се вижда версия
Относно „Преименувайте admin потребителя“:
Вместо да го правя в PHPMyAdmin,не може ли да го направя в администраторския панел на WordPress, раздел „Потребители“? (По-лесно е.) Или може би става въпрос за някакъв друг потребител?
От администраторския панел нямаш възможност да преименуваш admin потребителя. Ако пробваш, ще видиш че текстовата кутия с името му е недостъпна за редакция.
Може да промениш псевдонима, но той няма общо с потребителското име.
Така че, трябва да използваш команден ред или PHPMyAdmin.
Така е, наистина. Явно идеалният вариант е при създаването на самия блог админ-потребителят да се създаде с друго име. Така ще се спести това сложно редактиране.
Петко М
http://petkoblog.info/
Да, това е идея, да има възможност за избор на име на администратора преди инсталацията.
Хубави съвети, благодаря!
PS Обаче ето – пример за недостатъци на някои от методите, изброени по-горе:
1) сбърках (случайно) математическия резултат като пусках предния си коментар,
2) излезе ми prompt: „protected area / enter user & password“,
3) причината вероятно е в това, че като сбъркаш резултата, и се зарежда някой от административните файлове на WordPress, само че директорията е „заключена“ с .htaccess (парола), и затова дава такова съобщение,
4) аз, естествено, не въведох нищо и после само дадох back button, след като видях че съм сбъркал резултата и после се поправих, но
5) факт – това може да обърка някой потребител ненужно…
My $0.02:)
@Michel – най-вероятно наистина се извиква някой файл от административната директория. Малък недостатък, но не фатален
Имай предвид също, че тези съвети не са универсални, тоест няма да са практични и приложими във всички ситуации.
Но поне като първа граница на защита, добре е името на администраторския акаунт да се смени както и паролата.
Много полезна статия, отдавна се чудех как мога да преименувам администраторския си акаунт.
Аз бих искал да добавя няколко неща във връзка с написаното:
Първо, има вариант за SecureFTP връзка, но не знам как се настройва.
И второ, което решава и първия проблем, аз ползвам виртуална частна мрежа, тъй като за сега хоствам нещата си на домашния компютър.
Мисля, че този вариант е много по-лесен за реализация – аз ползвам OpenVPN, който се настройва сравнително лесно (за потребител занимаващ се от години с Линукс например).
Така може да настроите Apache да показва всички административни страници, както и други услуги, да работят само на адреси от локалната мрежа.
Имам предвид VirtualHost 192.168.0.1:80 за всички административни страници, а публичните да са VirtualHost реално_IP:80
Във връзка с горния коментар:
Така всички важни неща ще са достъпни от локалната мрежа, а точно това е едно от предимствата на VPN – дава Ви достъп до локалната мрежа.
И тъй като трафика е криптиран – не е нужно да ползвате https, SecureFTP и др. под. На такъв виртуален хост съм си сложил и phpMyAdmin
Благодаря за съветите
Версията се показва на множество места, дори и във RSS. Не е важно как ще я скриете а е важно да обновявате редовно.
Браво за добрата статия.Доста полезно инфо за WP феновете като мен
Можете ли да ми обясните малко по подробно за тези файлове .htaccess
Във тези файлове освен това което е дадено в статията друго трябва ли да се пише например php,html и други такива кодове.
Другия въпрос като запазя файла може ли да се пише нещо пред името .htaccess или така трябва да го запазя?
@Cmon – файла трябва да се казва .htaccess и не няма нужда да се пише друг код. За повече относно .htaccess гугъл дава доста ичерпателна информация
При мен не се получи това със .htaccess и .htpaswd
@Cmon – най-добре запитай поддръжката на хостинг доставчика ти как да го направиш. Може да има някаква особеност.
Всичкото много хубаво но има един въпрос. При толкова защити няма ли да почнат да враждуват по между си с различните плъгини за тая работа???
@Westside – в по-горе посочените съвети се използва само 1 плъгин и то за диагностика. Идеята на защитата не е да се наблъскат всички плъгини, които допринасят за някаква сигурност. Това е като да си сложиш няколко антивирусни програми на компютъра и да си мислиш, че си абсолютно защитен
Тази статия е доста полезна! Браво
Много полезна статия! Благодаря!
Много много полезно.Браво.
Постарал си се което е похвално.Продължавай в същия дух.
Много полезна статия, сега моят въпрос е…
Някой знае ли как мога да променя wp-admin на admin ?
Полезно