Intereting Posts
Предотвратить удаление плагинов важных каталогов Выводить настраиваемое поле как ul list Как создать пользовательский пакет установки WordPress? Использование медиатеки для настройки темы Как расширить медиабиблиотеку (WP 4.4) Удалить / удалить все функции? Локальный кеш локального компьютера заполняется старыми данными сайта WordPress. Закон Worpdress PHPSESSID / ЕС Будет ли использование дочерней темы создавать проблемы с параметрами коммерческой родительской темы? Правильный способ обновления пула таксономии с использованием register_taxonomy? WordPress не может найти IXR_Client Передовая практика проверки и санитаризации данных Правильно ли редактировать уже существующий плагин, чтобы добавить больше функциональности? Встраивание подкастов не работает Как отображать пользовательские типы сообщений и регулярные сообщения отдельно в общем архиве таксономии?

Изменение URL входа для целей безопасности

По соображениям безопасности должно быть возможно переименовать login.php на что-то другое и изменить другие ярлыки доступа (например: wp-admin), чтобы указать на новый URL-адрес.

Есть ли документальная передовая практика для этого? Если нет, какова будет самая правильная методология?

Я ценю, что это не безопасность сама по себе, просто обфускация, но я рассматриваю это как еще один уровень защиты: не замена других тактик безопасности, таких как ограничение блокировки попытки и ограничение принудительного ввода пароля.

Приветствуются творческие подходы.

Ну, учитывая переписывание и перенаправление, как в комментариях –

выберите то, что подходит вам лучше всего.

HOOK wp_login_url (); // эта функция генерирует адрес URL-адреса входа

Пример:

 add_filter( 'login_url', 'another_login_url', 10, 2); function another_login_url( $force_reauth, $redirect ){ $login_url = 'your_chosen_login_url'; if ( !empty($redirect) ) $login_url = add_query_arg( 'redirect_to', urlencode( $redirect ), $login_url ); if ( $force_reauth ) $login_url = add_query_arg( 'reauth', '1', $login_url ) ; return $login_url ; } 

Перенаправить действие

 add_action( 'login_redirect', 'mysite_login_redirect'); function mysite_login_redirect(){ return 'your_url'; } 

.htaccess переписать URL-адрес

 RewriteRule ^login$ http://site.com/wp-login.php [NC,L] 

.htaccess правило перенаправления

 RewriteRule ^login$ http://site.com/wp-login.php [NC,L,R] 

Лично я предпочитаю функцию перезаписи

add_rewrite_rule ()

 add_action( 'init', 'k99_login_rewrite' ); function k99_login_rewrite() { add_rewrite_rule( 'login/?$', 'wp-login.php', 'top' ); } 

ПРИМЕЧАНИЕ. Некоторые из этих методов могут изменяться в соответствии с версией wp, но в последних версиях все должно работать. Существуют и другие методы, если вы не найдете никого из подходящих для вас.

Разумеется, проблема заключается не в том, чтобы сделать это «взломать» или «взломать» ядро.

Исправляя идею фильтра krembo99, я задаюсь вопросом, не будет ли подход высокого уровня к решению с точки зрения плагина следующим:

  1. скопируйте wp-login.php в новый файл в корневом каталоге WP.
  2. Используйте фильтр 'login_url' чтобы указать на этот новый файл.
  3. Используйте фильтр 'admin_url' чтобы указать на новый «псевдо-url» для администратора
  4. Настройте действие 'login_init' чтобы либо просто выйти, либо установить какой-либо экран ошибок по умолчанию, возможно, перенаправить на страницу 404.
  5. Отредактируйте файл, скопированный на шаге 1, и удалите do_action( 'login_init' ) (или замените ее собственным собственным действием).

Я не проверял это – это просто теория. Самая большая проблема заключается в том, что при обновлении WP – он удаляет все файлы, которых он не ожидает в корне? Если это так, плагин также должен будет проверить, обновлен ли WP, и если да, переустановите альтернативный файл входа. И, конечно, мы хотели бы, чтобы это было сделано путем копирования обновленного wp-login.php, поэтому ему нужно было бы запустить regexp search-and-replace в do_action( 'login_init' ) .