Использую плагин защиты для своих сайтов iThemes Security.
Одна из функций этого плагина это смена URL входа в админку. Пример, меняем сайт.ру/wp-admin на сайт.ру/vhodadmin
Изучая сегодня исходный код главной страницы своего сайта я заметил, что wp-recall напрочь убирает защиту путём скрытия ссылки в админку, он этот URL показывает тут (часть кода):
<form action="https://сайт.ру/vhodadmin?action=lostpassword" method="post"> <div class="form-block-rcl"> <label>Логин или E-mail</label> <div class="default-field"> <span class="field-icon"><i class="fa fa-key"></i></span> <input required type="text" value="" name="user_login"> </div> </div>
Как видим любой хацкер теперь просмотрев исходный код найдёт доступ в админку.
Глянул исходный код на вашем сайте и увидел, что у вас на сайте плагин всё грамотно делает не вскрывая адресов (адреса вообще нет):
Вопросы:
- как мне можно прямо сейчас скрыть адрес, что править в плагине?
- планируется ли в ближайшем обновлении исправление данной ситуации?
а кто сказал, что на этом сайте он каким то образом скрыт? Любой если захочет может его узнать также в форме восстановления пароля и никакой катастрофы я в этом не вижу, боты долбятся в стандартную страницу, люди, если захотят будут долбится в ту, что найдут, только много не надолбят - сработает ограничение попыток авторизации.
Otshelnik-Fm сказал(а)
у вас версия wp-recall какая?
Самая последняя. Устанавливал с репозитория Wordpress прямо на странице плагинов (Версия 14.0.25).
Если отключить скрытие админки, то в стандартном режиме там wp-login.php прописывается:
Андрей Plechev сказал(а)
если от этого станет легче, то в данном случае это баг, который требует устранения.
Андрей, у вас на сайте "правильный баг", который скрывает админку, лучше внесите его в общий плагин, иначе все плагины по скрытию адреса админки становятся бесполезными.
Otshelnik-Fm сказал(а)
у вас версия wp-recall какая?
Вы можете просмотреть у себя на сайте, у вас тоже изменённый адрес, но плагин его вскрыл.
Виктор сказал(а)
Андрей, у вас на сайте "правильный баг", который скрывает админку, лучше внесите его в общий плагин
Позвольте мне судить что в данном случае правильно, а что нет.
Отсутствие урла в форме восстановления пароля делает невозможным собственно само восстановление и такой правильный баг можете оставить на своем сайте.
Андрей Plechev сказал(а)
Виктор сказал(а)
Андрей, у вас на сайте "правильный баг", который скрывает админку, лучше внесите его в общий плагин
Позвольте мне судить что в данном случае правильно, а что нет.
Отсутствие урла в форме восстановления пароля делает невозможным собственно само восстановление и такой правильный баг можете оставить на своем сайте.
Я не считаю, что знаю лучше вас плагин и его работу. Я не пытаюсь вас учить писать код. Я не пытаюсь вас оскорбить. Я не говорю, что ошибка восстановления пароля это правильно. Я же в кавычки взял выражение "правильный баг".
Выражусь понятнее. При скрытии админки мы это делаем специально с определённой целью. Плагин WP-Recall отображает, то что мы скрывали. С точки зрения логики такое поведение плагина некорректное, если его рассматривать как часть общей экосистемы сайта, а не как плагин, которому не надо больше ни с кем взаимодействовать.
Скрывая админку мы и дальше хотим, чтобы админка была скрыта от посторонних глаз. Можно использовать плагины блокировки по IP при неверном введении пароля, однако таким образом мы можем заблокировать не одного пользователя, а группу лиц пользующихся одним провайдером и имеющих общий IP и т.д.
Поэтому огромная к вам просьба рассмотреть возможность улучшения функционала плагина в части восстановления пароля (возможно и в других местах), чтобы он не выводил ссылку на админку, а, к примеру, получал URL сразу перед отправкой запроса на восстановление пароля и отправлял уже данные по ней. Сейчас плагин получает ссылку и вписывает его сразу в "action". Возможно есть и другие способы решения данного вопроса, о которых я не подозреваю, к примеру, шифрование ссылки.
С точки зрения логики такое поведение плагина некорректное, если его рассматривать как часть общей экосистемы сайта
Смешно. С точки зрения логики данная фишка будет уместна на сайте, где регистрация и авторизация не подразумевается, но никак не на социально активном сайте. Попробуйте отключить плагин WP-Recall и объяснить чистому ВП, что он, с точки зрения логики, работает неверно, всячески засвечивая свою стандартную форму входа.
Я уже ответил выше, поэтому повторюсь кратко: я не вижу здесь никакой проблемы, админка и так скрыта от всех, а на форму входа достаточно поставить ограничение на подбор пароля и вопрос будет решен. Выдуманная вами возможность блокировки людей пачками не имела место быть за все время работы такой конфигурации на этом сайте.
А если хотите чего то там шифровать, то обратитесь к разработчикам этого плагина безопасности и спросите почему они этого до сих пор не сделали. Не надо на плагин личного кабинета пытаться навешивать лишний функционал.
В чем смысл я не понимаю?
Вы меняете имя wp-login что бы в него:
1. не долбились боты. Они не додумаются узнать новое имя wp-login.php через форму восстановления на сайте, уверяю.
2.Или что бы люди то же не долбились? Так даже если "wp-login" будет скрыт - долбиться все равно будут, но только уже не в него, а в ?rcl_action=login (это пример, точный параметр я не помню)
Человек урл всегда узнает - к примеру когда к нему придет восстановление пароля. Уж если очень надо и это будет закрыто - он все равно узнает куда идти.
Все эти меры с автоботами - которых 99%. И смена wp-login спасает. Оставшийся 1% распределится по остальным лазейкам. Но 99% (которые и создают основную нагрузку) мы отсеем. Если среди них будет человек, злонамеренно нацелен на сайт - и хорошего склада ума, ему интересно будет поиграться в кошки мышки.
Виктор
Ставим код:
add_filter( 'logout_url', 't5_custom_logout_url', 10, 2 ); add_action( 'wp_loaded', 't5_custom_logout_action' ); function t5_custom_logout_url( $logout_url, $redirect ) { $url = add_query_arg( 'logout', 1, home_url( '/' ) ); if ( ! empty ( $redirect ) ) $url = add_query_arg( 'redirect', $redirect, $url ); return $url; } function t5_custom_logout_action() { if ( ! isset ( $_GET['logout'] ) ) return; wp_logout(); $loc = isset ( $_GET['redirect'] ) ? $_GET['redirect'] : home_url( '/' ); wp_redirect( $loc ); exit; }
в "голове" rcl-functions.php
Убираем:
<a href="#" class="link-remember-rcl link-tab-rcl "><?php _e('Forgot your password','rcl'); ?></a>
в form-sign.php
Удаляем form-remember.php
И будет счастье. Код в функшене скроет изменённый адрес входа (который, кстати виден толко зарегистрированным пользователям которые вошли в собственный акааунт - другим нет).
Отсальные две операции устраняют проблему восстановления пароля. Пусть и жестко, но если стоит цель решить проблему - пожертвовать этим, я думаю возможно 😉
Otshelnik-Fm сказал(а)
Ваш совет - выпилить форму восстановления пароля?
Нет, мой совет изначально заключался в предложении добавить соответствующий код в rcl-functions.php, который скроет изменённый адрес, в исходном коде страницы. Выпиливать или нет форму напоминания пароля - это уже решать топик стартеру. Но, безусловно, наличие формы напоминания пароля делает первое предложение практически бесполезным. Ведь в таком случае сокрытие изменённого адреса в исходном коде страницы полностью нивелируется его наличием в адресной строке страницы смены (напоминания пароля).
вы удивитесь - но в письме на восстановление пароля вам придет тщательно скрываемый вами путь))
Борьба с ветряными мельницами - просто бьет по карману (оплата хостеру, за установленные плагины безопасности). Отбивать надо 99% атак простыми и дешевыми средствами. 1% - это как раз то, чем занимаются плагины безопасности. Только вот движок они грузят ой ёй ёй и на все 100%
Otshelnik-Fm сказал(а)
вы удивитесь - но в письме на восстановление пароля вам придет тщательно скрываемый вами путь))
Безусловно, если есть функция восстановления пароля. Поэтому я и предложил от нее избавиться 🙂 В довесок к предложению с внедрением кода в файл функций.
Борьба с ветряными мельницами - просто бьет по карману (оплата хостеру, за установленные плагины безопасности). Отбивать надо 99% атак простыми и дешевыми средствами. 1% - это как раз то, чем занимаются плагины безопасности. Только вот движок они грузят ой ёй ёй и на все 100%
Полностью с Вами согласен. Была бы возможность, я бы не использовал плагины вовсе. Но увы, я далеко не так хорошо владею программированием, чтобы реализовать то, что мне необходимо самостоятельно, без использования плагинов 🙂