Сайт дня (как попасть): магазин игрушек
Безопасность любого сайта - очень важный момент, которым ни в коем случае не стоит пренебрегать. *Отвлекусь от громких слов - давно хотел добавить эту картинку, сегодня она отлично вписалась. Особенно мне понравилось, как получилось заменить надписи на щитах на эмблему WordPress 🙂 *
WordPress является очень популярным движком для блогов, который используется на множестве сайтов. Это вызывает повышенный интерес у злоумышленников, ведь, получив доступ к одному блогу на WordPress, они могут получить его ко многим другим блогам, действуя по той же схеме. Список уязвимостей WordPress можно посмотреть здесь.
На 100% защитить свой блог не получится. На любой вид защиты всегда найдутся специалисты, которые его обойдут. Это как у замков - какой бы ни создавали надежный замок, всегда найдется тот, кто его откроет.
Но не стоит отчаиваться. Каждый вид защиты создает определенные препятствия и трудности у злоумышленников. Чем больше препятствий, тем лучше.
Итак, приступим. Я начинаю цикл статей по безопасности WordPress, которые помогут вам повысить уровень безопасности вашего блога.
Не забывайте делать бекапы
Золотое правило, о котором нельзя забывать. Мало ли что. После публикации каждого нового поста я сохраняю базу данных с помощью замечательного плагина WP-DB-Backup. Если у вас не стоит этот плагин - рекомендую его обязательно поставить. С помощью этого плагина можно настроить так, что база данных вашего блога будет ежедневно или еженедельно автоматически приходить к вам на e-mail.
Также я регулярно сохраняю экспортный XML файл данных блога через меню админки Manage-Export (Управление-Экспорт).
Сохраняйте все файлы блога на компьютер
🔥 Кстати! Я провожу платный курс по продвижению англоязычных сайтов SEO Шаолинь seoshaolin.com. Для читателей блога я делаю хорошую скидку. По прокомоду "блог" тариф Про стоит не 50, а 40 тыс. рублей. Тариф Лайт не 25, а 20 тыс. рублей. Тариф Команда не 75, а 60 тыс. рублей. Пишите мне в Telegram @mikeshakin.Я всегда держу на компьютере локальную копию всех файлов блога, и ежемесячно ее записываю на dvd плюс каждую 1-2 недели сохраняю нужные файлы на внешний жесткий диск. Любые изменения в шаблонах или других файлах блога я сначала делаю на локальной копии, и только затем заливаю на хостинг.
Два раза в месяц я загружаю все новые картинки блога в его локальную копию. Это не раз выручало меня при переездах с хостинга на хостинг - все файлы блога, включая все картинки из постов, всегда под рукой.
Откажитесь от FTP
Во многих случаях протокол FTP используется для несанкционированного доступа.
Советую отказаться от FTP и перейти на использование программы Winscp (для Windows). Это программа для доступа к серверу через защищенный протокол SSH. Пароль в этой программе шифруется.
Далее нужно полностью закрыть доступ к сайту по FTP. Для этого в корне сайта создайте файл .ftpaccess, в котором пропишите такой код:
<Limit ALL> Deny from all </Limit>
Об этом способе я узнал из статьи Евгения Новикова Защита FTP с помощью .ftpaccess.
Скройте версию WordPress
В целях безопасности нежелательно, чтобы в html коде отображалась версия вашего WordPress.
Сначала уберите ее из файла header.php (он лежит в папке с темой вашего блога). Для этого из строки:
<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />
Удалите этот код:
<?php bloginfo('version'); ?>
Затем поместите такой код в файл functions.php в той же папке:
<?php remove_action('wp_head', 'wp_generator'); ?>
Также для изменения версии WordPress можете использовать плагин Replace WP-Version.
Желательно удалить файл readme.html в корневой папке движка. Кроме этого, нужно изменить версию WordPress в файле version.php в папке wp-includes:
$wp_version = '2.8.1';
Закройте возможность просмотра папок
Во многих случаях может быть возможность просматривать содержимое папок вашего блога WordPress. Это очень нежелательно.
Закрыть возможность просмотра папок вашего блога можно следующими методами.
Можно в файл .htaccess в корне вашего блога поместить такой код:
Options -Indexes
Можно создать пустой файл index.html и поместите его в папку с плагинами wp-content/plugins.
Используйте сложный пароль
Постарайтесь использовать сложный пароль длиной в 8-12 и более символов. Это сведет к минимуму вероятность его подбора. Желательно использовать не только цифры, но и буквы (заглавные и прописные), а также различные символы.
Можно придумать фразу с цифрами на русском, сменить раскладку клавиатуры и напечатать ее английскими буквами.
Можете также воспользоваться онлайн генератором паролей Pasw.ru. Только не забудьте сохранить пароль на нескольких носителях, а также распечатайте его на бумаге.
Ограничьте доступ к wp-content и wp-includes
В целях безопасности вашего блога желательно закрыть доступ к папкам wp-content и wp-includes. Нужно запретить доступ к любым файлам, кроме картинок, файлов Javascript и CSS.
Для этого нужно создать в каждой папке файл .htaccess и поместить в него следующий код:
Order Allow,Deny Deny from all <Files ~ "\.(css|jpe?g|png|gif|js)$"> Allow from all </Files>
В следующей части я продолжу описание различных способов для безопасности WordPress.
Кстати, для любителей английского будет интересен конкурс на лучшее сочинение на сайте "Английский без дураков": https://real-english.ru/blog/announcing-essay-contest.htm
Постовой: Нужна регистрация торговой марки Украина? Тогда обращайтесь к нам.
Хотите купить ноутбук в одессе - нет ничего проще.
Надежная теплоизоляция стен, труб, кровли и фасадов.
Десерт на сегодня - видеоролик о человеке, который вытворяет чудеса гибкости - обязательно его посмотрите! Я до сих пор под впечатлением:
Подпишитесь на рассылку блога с полезными материалами по SEO
Отличная и актуальная тема...
Надо будет заняться приминением этих советов.
Отличная и актульная тема..
Надо будет на днях заняться приминением этих советов.
Спасибо, Михаил, будем ждать следующих частей!
Скройте версию WordPress
есть еще куки)
Насколько я понимаю, сам WordPress (как например и Joomla) - достаточно безопасная система. А наибольшая уязвимость может идти через недостаточно проработанные сторонние плагины.
Еще полезно сменить имя пользователя admin на любое другое, ограничить права пользователя БД до минимально необходимых.
Не так давно у себя про это писал.
Михаил, спасибо за статью. В очередной раз много полезного материала. Теперь осталось дождаться продолжения.
<blockquote>Кроме этого, нужно изменить версию WordPress в файле version.php в папке wp-includes
$wp_version = '2.8.1'
</blockquote>
Скажите пожалуйста, изменить на какую версию?Или эту строку в файле version.php можно просто оттуда удалить?
Пожалуй с wp_version = самый остроумный метод. У меня давно уже 9-я версия движка 🙂
Спасибо, очень полезно для меня, но есть пара вопросов:
1. при обновлении блога до новой версии, много что может слететь и не востановиться? Очень переживаю.
2. если я запрещу FTP доступ, то смогу ли я попасть к каталогу через cpanel ?
Спасибо за понимание.
Классный пост, и картинки к постам в твоем блоге всегда впечатляют.
Не знаю о чем будет вторая часть, а возможно будет еще и третья, но кроме пароля, рекомендуется использовать имя пользователя отличное от admin, а самого admin лучше вообще удалить или переименовать ну и еще один немаловажный фактор это смена префикса базы данных WordPress.
Жду вторую часть 🙂
Я тоже занимался этим вопросом. Он кстати очень важный. В основном им интересуются только тогда, когда блог взломают 🙂
Полезные советы. Не думал, что все так непросто.
Люди делятся на 2 категории, те которые еще не делают бекапы и те которые уже делают 🙂
За статью спасибо, в ближайшее время начну применять ее на практике.
Дмитрий Донченко, обязательно расскажу про эти пункты, прямо мои мысли читаешь 🙂
osminog, на всякий случай перед обновлением все нужно сохранить. Если ставили только плагины и не меняли файлы движка - то маловероятно, что что-то сломается по большому счету. Разве что некоторые плагины не будут работать. Через cpanel попадете в любом случае.
Kostya, можете сменить на любую другую.
rOOse, конечно, есть, как без них 🙂
Замечательная статья, спасибо, что даете конкретные рекомендации, не ограничиваясь общими словами!
Особая благодарность за .ftpaccess, давно уже перешел на winscp, а вот закрыть ftp-доступ не мог, думал, что для этого надо иметь доступ к настройкам сервера. Только вот один вопрос в связи с этим возникает: если запретить ftp-доступ для всех (или даже оставить возможность доступа со своего IP), то об автоматическом обновлении плагинов придется забыть? Новую версию движка-то я, конечно, сам заливаю, там аккуратно надо, а вот плагины всё-таки хотелось бы обновлять одной кнопочкой. Хотя как вариант можно, конечно, для такого дела перезаливать .ftpaccess.
Михаил, можешь в двух словах сказать о Winscp:
- какой протокол советуешь выбрать в меню
- allow SCP fallback - галка нужна?
Многое из статьи уже давно применяю на практике, насчет FTP и бэкапа файлов на сторонние носители стоит задуматься.
Интересный материал, жду продолжения)
Глобатор, Вас лично приглашаю принять участие в короткой и интересной эстафете! ifox.com.ua/topic/388
Буду рад. Спасибо.
Спасибо огромное, Михаил, за Вашу работу!
Как всегда всё интересно и в тему. Офф: добрался до Ваших статей про плагины к FF и не могу нарадоваться( вот уже почти сутки балуюсь с этими плагинами).
Есть 2 вопроса к Вам, не совсем по теме этой статьи:
1. Сделайте, пожалуйста, урок по вставке видео на блог WP(как это сделано у Вас). Можно дополнить его всякими премудростями. Ведь Вы уже собаку съели на этом. А если уже есть такой урок у кого, то может ссылку выкиньте.
2. Ко мне очень часто в последнее время приходят комменты( трэкбэки). Я не знаю, как правильно ими распоряжаться: ссылки коммента там непонятные, сам анкор поста иногда нулевай вообще. Самому что ли прописывать там текст? Объясните, плиз.
Спасибо!
.ftpaccess
Allow 195.111.185 (или)
Allow 195.111.0/24
DenyAll
Вот можно и таким его сделать) Тогда сможете зайти только с этих айпишек на фтпшник)
Даже если пасс уйдет злоумышленнику, то воспользоваться им он не сможет 🙂
Советы дельные, нужно применить у себя обязательно!
Здравствуйте, Михаил. Я думаю Вам пора выпускать книгу "Шакин.ру" 🙂
P.S. Поделитесь пожалуйста знаниями о методах предотвращения утечки веса страницы, при наличии внешних ссылок... Такое возможно? Чтобы ВС была в индексе при этом не улетучивался Тиц и Pr...
Я извиняюсь перед автором за обсуждение вопросов, не связанных с темой.
gamerati, я так понимаю, что Вы это мне ответили. Если это так, то я всё равно ничего не понял. Вот такого вида приходит трекбэк:
<strong><a href="....." rel="nofollow"> </a><a href="...." rel="nofollow"></a><a href="...." rel="nofollow"> </a><a href="...." rel="nofollow"> </a>...</strong>
Интересно <b><a href="...." rel="nofollow"> </a><a href="...." rel="nofollow"> </a><a href="....." rel="nofollow"> </a><a href="...." rel="nofollow"> </a>...</b>
Размещать в таком виде его и получается, что анкор- это спам. Ссылка трэкбэка получается не поймёшь какая.
<blockquote>нужно изменить версию WordPress в файле version.php в папке wp-includes</blockquote>
Стоило это проделать, как ВП закричал, что есть новая версия (какая у меня и стояла) и надо срочно обновиться - это что ж, каждый раз будет выскакивать предупреждение и мозолить мне глаза? о_О
<blockquote>нужно создать в каждой папке файл .htaccess и поместить в него следующий код</blockquote>
Этого я, к сожалению, проделать не смогла: система <i>(Mac OS) </i>считет такой файл скрытым и, хоть я и сделала его видимым на компе, при попытке загрузить его в нужную папку с помощью плага <b>MyFTP</b> <i>(мой тарифный план не предусматривает доступ к блогу через FTP)</i> окно для выбора файла по-прежнему считает <b>.htaccess </b>скрытым и не показывает его <i>(значит, нельзя его выбрать для загрузки)</i>.
С нетерпением жду продолжения 🙂
Спасибо большое за пост, как всегда все супер, и десерт вкусный. Тема актуальная, особенно сейчас из-за gumblar'a
Все-таки решил отказаться от доступа по FTP 🙂 Закрыл доступ предложенным способом и теперь пользуюсь рекомендованной WinSCP.
А еще, в моем header.php нет сроки про версию движка, видимо какая-то функция генерирует необходимый HTML. Не стал ее искать, просто сменил версию в файле version.php
Большое спасибо за полезную статью, Михаил!
Формат файла .ftpaccess зависит от типа FTP-сервера, поэтому не стОит рекомендовать представленный фрагмент всем и сразу 😉
Спасибо за информацию, воспользовался некоторыми рекомендациями. Жду вторую часть 😉
Хочу подметить:
из-за строк:
Order Allow,Deny
Deny from all
<Files ~ ".(css|jpe?g|png|gif|js)$">
Allow from all
</Files>
Блог стал выдавать 403 ошибку. Хорошо что заметил на следующий день а не через неделю.
Если менять версию через файл version.php - кроме того, что сам Вордпресс будет ругаться "обновите версию" , еще некоторые плагины могут отказаться работать! Например при изменении 2.6.1 на 2.8.2 плагин Simple Tags отрубился, а при понижении версии до 2.4.1 ничего не изменилось.
Сергей, Вам нужен плагин Disable Trackbacks - https://www.viper007bond.com/wordpress-plugins/disable-trackbacks/, он отключает трекбеки, но разрешает пинги.
Tolsty, в данном примере автор забыл экранирующий бекслеш перед точкой, поэтому правила гасят много нужного и приводят к ошибке 403 😉
хотелось бы узнать можно ли какими либо скриптами защитить блог от дос-атаки! как думаете?
если можно хотелось бы статью увидить!
SergeySL, спасибо, бекслеш добавил.
Аббат_Кальне, скриптами этого не сделать.
а чем WinSCP лучше Filezilla ?? и лучше ли ?
и еще код
<?php remove_action('wp_head', 'wp_generator'); ?>
отказался работать, сработало только когда прописал
remove_action('wp_head', 'wp_generator');
Спасибо за статью.
Я как-то видел плагин, который позволяет легко создавать .htacess для wp-admin, но не могу вспомнить где и как он назывался. Мож кто припомнит?
Михаил, вот за эту вещь "Советую отказаться от FTP и перейти на использование программы Winscp (для Windows)" мегаспасибо!!!!
даже и не знал, что ССШ - это так удобно! Теперь точно буду уходить от работы по фтп) спасибо!!!!!
поставь на блоге кнопочку "Donate". за такие подсказки лучшая благодарность - копеечка в копилочку)
Хотелось бы добавить что фокус с .ftpacess пройдет не на каждом хостинге
Например у меня два разных хостинга и у обоих хостеров сервера настроены такчто они не обращают внимание на ftpaccess в корне, что в нем не пиши 🙂
Так что защищаемся другими методами
osminog - через панель зайти сможете
На сайте wpsec.ru можно проверить сайт (желательно свой ) на уязвимости. Это онлайн сканер на известные уязвимости WordPress - можно проверить, что с безопасностью на сайте.
Здравствуйте. Михаил, скажите, пожалуйста, файл .ftpaccess должен быть только в корневой папке сайта: https://ваш_сайт.ru/wp-admin/файл .ftpaccess или файл .ftpaccess может лежать в других разделах, и в файле .ftpaccess должна быть прописана одна команда, например, для 301 редирект, или несколько команд: 301 редирект, ограничение на вход по IP и другие команды? Заранее благодарю.
Вячеслав, я использую тот вариант, который описал в статье. Другие варианты я не пробовал.
Здравствуйте,Михаил.
Спасибо за статьи и полезный материал. Помогите пожалуйста.
У меня такой трабл на блоге. Проверила свой блог с помощью проги Xenu Link на всякие битые и вредные ссылки. Так вот, она мне выдала много ссылок, URL которых при копировании и вставке в поиск выдает символы на весь экран, например, цифры, как арабские, так и римские и другие фигуры, а при просмотре кода (Ctrl+U) появляется ссылка на совсем другой сайт, которая встроена в блог. Подскажите , как отыскать в файлах эти скрытые коды и удалить их?
Я прикреплю скины выше описанного. Спасибо
Здравствуйте, Лена! Ответил Вам на почту.