Защита админки в WordPress — просто, быстро и надёжно!
Защищаем админ-панель в WP
После недавнего взлома web-ru.net (пока не ясно точно, что это было) решил защитить админку данного WordPress-сайта.
Вообще, в интернете описано множество способов для этого. Есть, например, специальные WP-плагины, которые контролируют IP пользователей, создают сложные капчи и делают что-нибудь ещё.
Но установка новых плагинов — процесс не очень рациональный. Я же предлагаю более простое и одновременно надёжное решение.
Простая и надёжная защита админки WordPress
Сначала надо немного пояснить, что и зачем следует защитить.
админка сайта (администраторская, админ-панель) — это такое пространство большинства CMS, откуда происходит управление сайтом — создаются страницы, что-то редактируется/загружается и т.д.
Естественно, никакой админ не хочет, чтоб в его админку попали посторонние люди
Попасть туда можно обычно путём ввода логина/пароля на специальной странице. Например, в Вордпрессе можно залогиниться в администраторской, перейдя по адресу http://site.ru/wp-admin или http://site.ru/wp-login.php:

Форма входа в админку WordPress
Поэтому необходимо сделать так, чтобы ввод логина/пароля происходил бы по известному только вам адресу.
Для этого нужно сделать всего 3 шага:
- в корневой папке своего сайта находим файл wp-login.php
- переименовываем его как угодно, хотя бы так: sdfdsgertg2323redg.php (лучше его сначала скачать себе на ПК)
- открываем данный файл и меняем все упоминания «wp-login.php» на «sdfdsgertg2323redg.php»
3-й пункт можно сделать вручную в блокноте, но проще воспользоваться специальным редактором (рекомендую Notepad++). Откройте в нём файл, нажмите CTRL-F и что делать далее — видно на картинке:

Notepad++ — замена строк в wp-login.php для защиты админки WordPress
Далее в корневую папку вашего WP-сайта нужно поместить файл sdfdsgertg2323redg.php. Естественно, файла wp-login.php там быть уже не должно.
Вот и всё. Теперь авторизоваться в админке можно по адресу http://site.ru/sdfdsgertg2323redg.php. Причём при обращении к http://site.ru/wp-admin произойдёт редирект на страницу 404-й ошибки, что правильно.
Update!
Долгое время было не ясно — как сделать нормальный log out из админки при изменении имени файла. Дело в том, что при нажатии «Выйти» в админ.панели перекидывало на /wp-login.php, которого уже нет, в результате нормального выхода так и не получалось.
Теперь проблема решена (благодаря комментатору Ярославу):
- заходим в папку wp-includes
- находим там файл general-template.php
- аналогично, как и ранее: ищем там «wp-login.php» и меняем его на новое название файла.
И всё теперь хорошо.
Update 2!
Обнаружен недостаток первого Update’а — при обращении к сайту по URL http://site.ru/wp-admin в адресной строке браузера видно новое название файла. Так что лучше использовать алгоритм до «Update!». Спасибо комментатору «Хозяин»
Дополнение
В свежих версиях WordPress переименование файла wp-config.php и замена в нём всех «wp-config.php» на новое имя файла не поможет. Чтобы помогло, нужно использовать wp-config.php от старых версий WP — возможно, до 4.0 или до 3.5. Можете скачать wp-config.php отсюда и производить все манипуляции уже с ним.
Читайте также по теме защиты WP:
Таким образом, этим простым способ можно защитить админку в WordPress без всяких плагинов и т.п. Главное, не забыть новый адрес для залогинивания и никому его не давать
Как узнать версию WordPress и скрыть версию WP своего сайта?Желательно знать, какова версия вашего WordPress сайта (вдруг...
TerraLeads: CPA-сеть с уникальными COD нутра офферамиДля тех, кто долгие годы зарабатывает в Интернете, не секрет, что сейчас идет нас...
SEO-аудит сайта Teotihuacan.ru. ВидеоВ данной статье - проверка WordPress-сайта с типичными для этого движка ошибками....
Ежегодная конференция SEMPRO по добыче и монетизации трафика21 мая в Киеве, состоится шестая, ежегодная конференция SEMPRO по добыч...
Ретаргетинг – что это? Отличие ретаргетинга от ремаркетинга.Ретаргетинг — это горячая тема в мире интернет-рекламы. Если вы его не используете...
Спасибо за идею, — очень просто и, думаю, эффективно!)) Желаю удачи в восстановлении Вашего сайта.
спасибо =)
Сори, просто проверяю
для меня конечно сложновато, но делать надо. уже пару раз появлялись сообщения от хостера что панель входа атакуют боты с целью подобрать пароль. Сейчас хостер изменил вход — нужно сначала нажать определённую ссылочку и перейти. А Вам такую услугу можно заказать, что бы сделать такую защиту?
Наталья, по таким делам пишите сюда.
Благодарю за статью.
Сейчас меняю название файла и вспомнил про robots.txt, куда стоит вписать новое название вместо wp-login.php)))
Да в robots-то вроде ничего не надо вписывать, если Вы об этом.
Для справки: http://web-ru.net/prodvizhenie-sajta/seo/chto-takoe-fajl-robots-txt-nastrojka-specsimvoly-i-direktivy-allow-disallow-sitemap-host-user-agent.html
А как же индексация роботами?
А что с ней будет не так?
Интересная система. А logout у всех нормально работает? При выходе из системы обращается к файлу wp-login.php а так как его нет, я из админки выйти не могу:(.
Да, обычный logout не получается.
Не думаю, что это проблема, т.к. выход из админки можно осуществить простым закрытием браузера и/или чисткой cookies.
Чтобы logout нормально работал, надо изменить название файла wp-login.php на новое и в файле wp-includes/general-template.php
Отлично, спасибо!
То, что надо
Спасибо за полезный совет. Пойду переименовывать
Добрый день! Сделал всё как в статье, но редиректа на страницу 404 нет, просто белая страница. Сама страница 404 в папке темы присутствует, в корневой паке сайта её нет, может проблема в этом?
Здравствуйте,
значит, что-то не так сделано или с шаблоном темы что-нибудь не то.
— так и должно быть, проблема не в этом.
Отредактируйте пост выше, если пробую зайти на страницу site.ru/wp-login.php то нахожусь на белой странице с этим же адресом, редиректа на 404 нет, если же захожу на site.ru/wp-admin то перекидывает на новую страницу админки.
В общем, или файл «wp-login.php» не меняли (и не удалили) или же что-то с темой.
Не плохой метод, что бы не прибегать к плагинам. Хотя один плагин может и не помешает, на попытки входа в админку.
ну дак что потом с этими попытками делать
Способ хороший, давно им пользуюсь. Еще после переименования файла, можно сделать следующее: создать файл wp-login.php и написать в нем всего одну строчку, типа: «Думаешь, ты здесь самый умный?» Или такую: «Хакерам тут не место!» Ну это просто для прикола!!
Ну да
Можно и не такое написать..
Круто придумано. А еще можно старую страничку не удалять а написать там что то типо — «хахахаа — обломись а админки тут нету! Или типо — А не пора ли вам в школу дорогой»)) это не только не даст взломать ваш сайт а еще и надругается над хакерами)))
Обычно злое приводит к злому

Так что лучше этим не увлекаться — а то попадётся особо продвинутный и обидчивый хакер — так он вам весь хостинг снесёт
От блин а такое уже было предложено выше — ну ничего )) Думаю издевательствам над хакерами нет предела)
Всем привет!
Прочитал и хлчу сказать, что вся эта комбинация не совсем верна. Вход в админку, делается по совсем другому файлу. А вышеуказанное чисто сделано для входа для пользователей.
Здравствуйте,
по какому файлу он делается?
Всем привет!
Спасибо за статью, а точнее за труд. Куда бы без Вас!
Но возникла проблемка. Сделал все как ту написано, на одном все без проблем заходит и т.д, а вот на втором ресурсе, да выходит окно автризации, ввожу данные и — No input file specified. C родными файлами, все нормуль.
Скажите в чем проблема, всю голову сломал?! Движок WP 3.7.1
Здравствуйте,
весьма странно, возможно, что-то случайно удалили из wp-login.php.
Замените тогда этот файл на тот, что в том сайте, где всё без проблем.
Здравствуйте, сделала как Вы написали-отличная тема, но к сожалению когда захожу уже в админку-белая страница((( Может подскажете в чем может быть проблема?
Здравствуйте,
способ действенный и универсален на старых и последней версиях WordPress.
Возможно, Вы что-то удалили/не полностью заменили в wp-login.php.
Также попробуйте очистить куки и кэш браузера и авторизоваться по новой.
Автору спасибо! Хорошая запись, помогла очень.
Чем она тебе помогла?
:))))))))))
Зато запись.. хорошая…))
А вот у меня простой вопрос, в таком случае? Если сделать все как описано выше, то тогда авторизация пользователей будет происходить на какой страницы?
Так на той же, где и админ авторизуется.
Но тогда ведь и хакер увидит по какому адресу происходит авторизация и направит туда своего бота.
Если вынести эту страницу «в массы» — то да, естественно.
Просто WordPress такой движок, который в основном предполагает наличие одного человека, входящего в админку.
Или же, как вариант, надо дать адрес этой страницы «проверенным» людям.
Здравствуйте, скажите вот у вас на сайте в конце статьи есть кнопки соц сетей , довольно таки интересно выглядят, скажите вы сами это создавали эти кнопки или это какой то плагин.
Здравствуйте, это скрипит соц.кнопок от Яндекса.
…Главное, не забыть новый адрес для залогинивания и никому его не давать…
а как тогда быть с новыми участниками (они у меня требуются)? Самому их регистрировать?
Ну… им-то дайте этот адрес.
Сделал все как написано, теперь зато не могу выйти из админки , ошибка 404, Где нужно добавить новый адрес входа? Буду ждать вашего ответа.
Вообще, не задавался этим вопросом, т.к. выходить из админки можно просто закрывая браузер и вычищая куки.
Но думаю, можно покопаться в файлах и найти решение
Народ сделала как тут говорили, а у меня при входе в админку
вот что выдает
белая страница с такой надписью
Не Найдено
Запрошенный URL /wp-login.php не был найден на этом сервере.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument для обработки запроса.
Apache/1.3.34 Server at xn--1-7sbcuj2c.xn--p1ai порт 80
Естественно, /wp-login.php не найден, его же переименовали.
Почему же тогда запрос идет на это имя? И что с этим делать? У меня та же проблема: Запрошенный URL /wp-login.php не был найден на этом сервере.
Возможно есть еще файл, который необходимо изменить?
Он и не может быть найден — его же теперь нет.
Для залогинивания следует перейти на site.ru/новое-имя-файла.php
Всем спасибо, переспав с этой информацией. Утром все получилось =)
А, ну окей
работает всё норм, НННОО вводя в в адрес в место login.php wp-adminстраница выдает страницу входа а в адресной строке показан мой адрес который я поменял с login php
Да, подправлено, спасибо.
Очень нужная и интересная статья. Как обычно за остальной работай по сайту забываешь подумать о безопасности, а кончается всё очень плохо! Спасибо!!!
Здравствуйте,
Столкнулась с проблемой атак и приняла несколько мер против этого. Включая этот. Все получилось, и заменить и войти. Проблема вылезла с неожиданной стороны. Теперь не могу добавить фото ни на страницу, ни в статью. То есть, когда кликаешь на кнопку «добавить медиафайл» галерея не загружается. Меняю все обратно — работает. Не подскажете, в чем проблема?
Здравствуйте, ни разу с таким не сталкивался.
Быть может, кто-нибудь из комментаторов вам поможет…
Добрый день!
Все сменила, но переходит на wp-login.php не только при выходе, но и при входе в админ панель? Что делать? Возможно еще есть какой-то файл, который еще нужно изменить?
Та же самая проблема. Хостер говорит не суйся, лучше плагин установи)) А мой пытливый мозг не дает мне теперь покоя…
А что делать с установленными плагинами Anti-XSS attack и Login LockDown? Они-то тоже используют wp-login в чистом виде?
Не знаю, никогда не пользовался ими
Для лучшей защиты лучше плагин использовать
В таком способе защиты админки есть дырочка
. Если вбить «адрес сайта/wp-admin», будет пере направление на новый адрес админки. Не имеет значения, заблокирован доступ к файлу wp-login.php или нет.
Не будет)
Я просто убрал стандартный файл wp-login.php, а на его место по ftp поставил этот другой с таким содержимым —
<?php
// ... здесь какой-то код PHP ...
echo "";
// ... здесь какой-то код PHP ...
?>
Картинку с юмором или с статьей уголовного кодекса.
Можно поиздеваться и поставить вместо картинки другой код…
Когда необходимо ставлю обратно родной и все….
Несколько секунд и проблем с подбором пароля к админке нет.
Можете переписать статью без апдейтов внизу?)