Безпечний блог на WordPress - поради

WordPress дуже популярний і привертає багато уваги тих людей, які бажають отримати неправомірний доступ до Вашого блогу. Як і у інших випадках забезпечення з відкритим кодом, атакуючий має вільний доступ до коду Wordpress. Ризик отримання спам-посилань, руйнування блогу та інших атак дуже великий. У цій статті я покажу декілька різних шляхів, як можна зробити Ваш WordPress більш безпечним .
Існує дуже багато методів підвищення безпеки у блозі на WordPress. Я продемонструю тільки ті, які дуже легко втілити у життя :).

Які методи Ви використовуєте, залежить від різних доступних Вам опцій. Наприклад, якщо Ви маєте доступ до конфігурації серверу, Ви вже можете значно підвищити рівень безпечності Вашого блогу. Це стосується НЕ WordPress-овських налаштувань безпеки.

Установіть WordPress безпечно

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

Вже впродовж інсталяції WordPress Ви маєте звернути увагу, що Ваш блог повинен мати як змога менше спільного з стандартною інсталяцією WordPress. Така інсталяція, що відрізняється від стандартної, робить блог більш захищеним від потенційного ризику неавторизованого доступу. Отже Вам необхідно звернути увагу на наступні декілька порад, коли Ви встановлюєте WordPress.

Всі ці поради стосуються “чистої” інсталяції Wordpress, без сторонніх плагінів. Є також корисні плагіни для покращення безпеки блогу на WordPress, які будуть гарним альтернативним вибором цим порадам для менш досвідчених користувачів.

Префікс таблиць

Доступ до бази даних налаштовується у файлі wp-config.php. У ньому визначений префікс імен таблиць, які використовує WordPress для створення бази даних при інсталяції. За замовчуванням цей префікс – “wp_”. Ви повинні завжди вказувати якийсь інший префікс, що не співпадає із стандартним. Ви також повинні слідкувати за тим, що у префіксі використовуєте тільки числа, букви та знак підкреслення, оскільки інші символи не підтримуються. Префікс у файлі wp-config.php вказано як значення змінної $table_prefix :

Всеж, як не крути, не має у світі нічого досконалого… І кожну річ ми часто пробуємо змінити “під себе”, якою б ідеальною вона не була. Буває, що не стільки річ погана, скільки наші смаки чи потреби дещо не співпадають із смаками та потребами творця цієї речі.
Ось і wordpress не оминула ця участь. Сьогодні ми поговоримо про те, що та як можна “підпиляти” у адмінці wordpress. Для чого? Як приклад, створючи блог під заказ для клієнта, буває є необхідність зробити адмін-частину як можна простіше, аби клієнт, чи його співробітники, не “наробили” чого зайвого.
Але стаття в нас буде не простою, а гостьовою :). І в гостях у нас сьогодні Віталій aka Mr.Psiho. Почнемо…

У попередній статті я вже писав, про те як можна приховати практично всі елементи меню адмінки двигунця WordPress. Дані раніше поради залишається дієвими, однак не досконалими. Приміром, одне з обмежень – неможливість приховати пункт меню, що створений плагіном. Тим не менше, стандартні пункти WordPress, такі як “Публікації” чи “Сторінки” і ін., описаний раніше метод дозволяв сховати.

Сьогодні йтиметься про новіший, перероблений код, який дозволятиме приховати будь-який пункт меню (і стандартні і ті, що створені плагінами) від користувача з певною роллю. Однак, варто пам’ятати, що все ще залишається питання прав доступу до прихованого меню. Описаний нижче метод лише приховує, але не забороняє доступ до того чи іншого пункту меню. Таким чином, якщо користувач знайомий з WordPress та знає прямий лінк на певний пункт меню і, при цьому, роль користувача дозволяє, то він зможе скористатись даним пунктом меню. Питання прав доступу обіцяю розглянути у найближчому майбутньому 🙂

Оскільки Wordpress для збереження майже усієї інформації використовує базу даних, то і маніпулювати цією інформацією можна, окрім адмінки, просто SQL запитами. Іноді такий спосіб навіть зручніший.
Отже почнемо:

Змінити Siteurl & Homeurl

[sql]
UPDATE wp_options SET option_value = replace(option_value, ‘http://www.oldsiteurl.com’, ‘http://www.newsiteurl.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;
[/sql]

Змінити логін “Admin” на свій

[sql]
UPDATE wp_users SET user_login = ‘Ваш новий логін’ WHERE user_login = ‘Admin’;
[/sql]

Змінити пароль (якщо забули, як приклад)

[sql]
UPDATE wp_users SET user_pass = MD5( ‘новий пароль’ ) WHERE user_login = ‘Ваш логін’;
[/sql]

Змінити автора в усіх записах з А на Б

[sql]
UPDATE wp_posts SET post_author = ‘new-author-id’ WHERE post_author = ‘old-author-id’;
[/sql]

Можна, відредагувавши файли Вашого Wordpress шаблону, легко додати рекламний блок Google AdSense на початку запису або у кінці. Я сьогодні покажу, що також легко можна додавати будь-яку рекламу і у середину запису.

Додаємо AdSense через функцію str_replace()

Отже, для додавання у середину запису WordPress-блогу коду Google Adsense (або будь-якого іншого коду) ми використаємо функцію str_replace().
Робимо це, аби просканувати весь запис, шукаючи заданий тег, наприклад, [php][/php], і замінити на Google Adsense код.

Спочатку, створимо функцію і додамо у файл functions.php:
[php]
function googleadsense($content){

$adsensecode = ‘тут код Google AdSense’;

$pattern = ‘‘;

$content = str_replace($pattern, $adsensecode, $content);

return $content;
}

add_filter(‘the_content’, ‘googleadsense’);
[/php]
Ось і усе, що потрібно. Тепер, публікуючи запис, додайте будь-де всередині тег , і він буде замінений на Ваш Google Adsense код.

Додаємо AdSense через короткий код

Починаючи з версії 2.5.1, WordPress підтримує Shortcode API. Це простий набір функцій для створення короткий кодів, які можна використати у записах блогу. От ми і створимо функцію у funtions.php, яка буде підставляти замість нашого короткого коду – рекламу Google AdSense.

Кілька днів тому оновив плаґін статистики WordPress.com Stats і помітив, що у HTML-коді сайту з’явився цікавий рядок <link rel="shortlink" href="http://wp.me/oQ0Y" />.
Спершу не зрозумів яким чином це робиться, поґуґлив і виявилося що нова версія плаґіну статистики додає цю фічу.
Як це використати? Потрібно натиснути на кнопку «Get shortlink» і отримати свій короткий лінк на публікацію, а далі вже можна ділитися ним.