15.04.2008 23:53Безопасность WordPress.

Многие, наверное, еще помнят старую историю с ошибкой в одном из модулей phpBB, когда боты поимели чуть ли не все форумы Интернета, крутящиеся на этом движке.

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

И так, начнем:

1. Поменяйте преффикс для таблиц в базе данных WordPress.

По умолчанию префикс WordPress таблиц – ‘wp_’, тоесть все таблицы в базе Вашего блога начинаются с этих символов. Для чего нужно его менять? Дело в том, что большинство ботов, использующих SQL-Injections уязвимости используют стандартные имена таблиц, изменив их префикс, мы немного снизим риски от SQL-Injection ориентированных атак.

Поменять префикс можно, как до установки WordPress так и после нее.

Если WordPress еще не установлен, то Вам нужно всего навсего отредактировать файл wp_config.php. Найдите в нем следующую строку:

$table_prefix = ‘wp_’;

И поменяйте ее, например, на что-нибудь типа этого:

$table_prefix = ‘mydb123_’;

Если, WordPress уже установлен, и блог уже живет своей жизнью, то помимо этого потребуется еще пара действий.

Во-первых, нужно вручную переименовать все существующие в базе WordPress-а таблицы, сделать это можно, выполнив несколько несложных SQL запросов:

RENAME TABLE wp_posts TO mydb123_posts;

И так для каждой таблицы. Всего их десять:

wp_categories, wp_comments, wp_link2cat, wp_links, wp_options, wp_post2cat, wp_postmeta, wp_posts, wp_usermeta, wp_users.

Но и это еще не все, далее нужно поменять несколько записей в таблице wp_options (mydb123_options):

UPDATE mydb123_options SET option_name=’mydb123_user_roles’ WHERE option_name=’wp_user_roles’ LIMIT 1;

UPDATE mydb123_options SET option_name=’mydb123_autosave_draft_ids’ WHERE option_name=’wp_autosave_draft_ids’ LIMIT 1;

UPDATE mydb123_options SET option_name=’mydb123_user_level’ WHERE option_name=’wp_user_level’ LIMIT 1;

Всё это можно автоматизировать установил плаггин WP Prefix Table Changer. Перед установкой не забудьте о резервных копиях Ваших баз.

2. Переименуйте встроенную учетную запись администратора.

По умолчанию учетная запись администратора в WordPress имеет логин admin. Поменяв его, вы защитите себя от bruteforce атаки на учетную запись администратора.

Поменять можно следующим образом:

UPDATE db123_users SET user_login=’admin’, user_login=’toor’;

Новая учетная запись будет иметь логин toor.

3. Управляйте ролями.

Создавайте пользователей с ограниченными, только реально нужными, привилегиями. Сделать это позволяет плаггин для управления ролями – Role Manager.

4. Ограничте доступ к директориям wp-content и wp-includes.

Запретите доступ к любым файлам, кроме изображений, файлов JavaScript и CSS. Для этого в данных директориях создайте файл .htaccess со следующим содержимым:

Order Allow,Deny

Deny from all

<Files ~ «.(css|jpe?g|png|gif|js)$»>

Allow from all

</Files>

5. Ограничьте доступ к директории wp-admin.

В директории wp-admin, находятся скрипты для управления Вашим блогом, обязательно ограничьте эту директории от посторонних.

А. Разрешите доступ только для Вашего IP-адреса.

Если у Вас есть реальный статический IP-адрес, то доступ к директории wp-admin, можно настроить только для него. Для этого, создайте в данной директории файл .htaccess со следующим содержимым:

Order deny,allow

Allow from xx.yy.zz.ww #Ваш реальный IP-адрес

Deny from all

Б. Задайте пароль для доступа к директории wp-admin.

В директории wp-admin создайте файл .htaccess со следующим содержимым:

AuthUserFile /path/to/file/.htpasswd

AuthType Basic

AuthName “SecureBlog”

В безопасном месте создайте файл .htpasswd. Для этого, будучи в нужной директории, выполните команду:

htpasswd -cm .htpasswd BlogAdmin

И введите пароль.

Теперь доступ к директорию сможет только пользователь BlogAdmin обладающий паролем.

6. Защитите свой блог от спама.

Существует много способов защиты блога от нежелательных комментариев и trackbacks. В целях достижения оптимального результата, рекомендуется использовать их в сочетании:

  1. CAPTCHA – тест Тьюринга, который, в теории должен уметь отличить машину от человека, но теория, к сожалению далека от практики.
  2. Аутентификация – комментарии в блог может оставлять только зарегистрированный пользователь.
  3. Черные листы.

7. Используйте шифрование.

Если Ваш хостер предоставляет SSL, используйте протокол HTTPS для входа в WordPress. Плаггин, реализующий данный функционал здесь.

8. Отключите сообщения об ошибках.

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

9. Удалите информацию о версии своего WordPress.

Ну, вот, пожалуй и всё. Ах да, не забывайте своевременно обновлять ПО и делать резервные копии.

Надеюсь, эти советы кому-нибудь окажутся полезными. За инфомацию спасибо блогу BlogSecurity.net.

Популярность: 64%

Похожие записи:

  1. Массовое редактирование комментариев WordPress
  2. WordPress теги для Windows Live Writer.
  3. Публикация поста в WordPress с помощью XMLRPC с поддержкой All in One SEO Pack
  4. Инструменты блоггера.
  5. Траблшутинг блог клиентов.

Комментарии 7 | Теги: , ,

Реклама:

Комментарии:

  1. Жилинский комментирует:
    17 Апр 2008 - 14:06

    А зачем переименовывать таблицы в БД ? Префикс лежит на диске в wp-config, а если кто-то пролезет к серверу БД, то имена таблиц он уж всяко получит.

    Капча – отличный способ избавиться от комментариев =)

  2. Steward комментирует:
    17 Апр 2008 - 14:20

    Переименование таблиц в БД конечно не поможет если есть доступ к исходникам установленного блога. Но может предотвратить возможные атаки путём SQL injection.

  3. Это все верно, если блог один-единственный.

    А если их десятки – лениво.

    На всякий случай надо ежедневно бэкапить БД, и регулярно бэкапить все файлы сайта, и при случае все без особого труда можно будет починить…

  4. Ну если блог не такой популярный, то можно просто бекапом обойтись.
    У меня за год работы только одна ерунда случилась со взломом и все…

    Вместо сайта тупо была только одна надпись – by Th3h4ck3r 0wnz y0ur b0x Fuck israel N0000 warrrrr

  5. promohunter комментирует:
    30 Июн 2009 - 4:32

    2 вопроса – как можно ограничить доступ к wp-admin (т.е. совет 5) ? и ssl это в первую очередь от снифферов если я правильно понял ?

Трекбеки и пингбеки:

  1. News.WebMoon.Ru - Новостной Блог: Безопасность WordPress.

Оставьте комментарий

Немного о себе




Комментарий

Я не робот