Можно ли переименовать папку wp-admin?

12 авг. 2010 г., 00:35:30
Просмотры: 85.3K
Голосов: 77

Возможно ли переименовать папку wp-admin?

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

Если использовать пользовательское имя папки, это сделает сайт немного более безопасным, в соответствии с принципом "безопасность через неочевидность".

0
Все ответы на вопрос 13
3
44

К сожалению, на данный момент это невозможно, и, судя по всему, нет намерения рассматривать это как изменение, как видно из недавнего обсуждения в списке wp-hackers и этого тикета в треке.

Если вы действительно хотите, чтобы этот вопрос был пересмотрен, я предлагаю:

  1. Изложите свою позицию в списке wp-hackers, но будьте готовы к тому, что ваш кейс должен быть действительно убедительным, а не просто "безопасностью через скрытность", иначе он будет отклонён, как в примерах выше.

  2. Представьте свои аргументы в тикете трека с теми же оговорками.

  3. Ещё лучше — загрузите патч в трек, который реализует нужную вам функциональность. Гораздо сложнее сказать "нет", когда работа уже выполнена (но, конечно, они предпочитают говорить "нет" гораздо чаще, чем "да", так что будьте готовы.)

12 авг. 2010 г. 01:19:55
Комментарии

+1 у них действительно есть склонность гораздо чаще говорить "нет", чем "да", так что будьте готовы :)

Sisir Sisir
29 нояб. 2013 г. 07:18:06

Учитывая, что это принятый ответ на вопрос, который волнует многих из нас, даже будучи новичком в WordPress, хочу добавить, что, кажется, существуют плагины, позволяющие переименовать wp-admin и wp-login.php...

pataluc pataluc
26 июл. 2023 г. 13:01:12

плагины не переименовывают wp-login.php, а создают совершенно новые страницы входа и заставляют WordPress использовать их через фильтры, файл wp-login.php остаётся на месте. Нет плагинов для перемещения wp-admin, так как это жёстко прописано практически везде, хотя сокращения, перенаправляющие туда, встречаются часто, и некоторые даже входят в ядро ( /admin и /login )

Tom J Nowell Tom J Nowell
21 авг. 2023 г. 16:14:14
2
15

Люди продолжают задавать этот вопрос, но его постоянно помечают как дубликат. Однако выбранный ответ на самом деле не отвечает на вопрос.

Чтобы переименовать админку WordPress, необходимо выполнить два шага.

В следующем коде я использую "dashboard" как название новой админки. Замените "dashboard" в коде ниже на любое желаемое название для вашей админки.

Сначала необходимо сообщить WordPress, что вы хотите изменить URL админки.

В строке 2558 файла wp-includes/link-template.php находится код, определяющий URL админки.

Используя фильтр admin_url, вы можете успешно изменить URL админки с помощью следующей функции:

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');

Вы можете проверить новый URL, выполнив следующее:

function whats_my_admin_url() {
    $url = admin_url();
    echo '<pre><code>'; print_r( $url ); echo '</code></pre>';
    }
add_action( 'admin_notices', 'whats_my_admin_url' );

Однако вы заметите, что при переходе по ссылкам в админке не всё работает, и некоторые ссылки могут выдавать ошибку 404 или что-то подобное.

Во-вторых, измените файл .htaccess в корневой директории WordPress и добавьте следующее в самое начало перед всем остальным.

#ПЕРЕЗАПИСЬ URL АДМИНКИ
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#ПЕРЕЗАПИСЬ URL АДМИНКИ

Я не эксперт в редактировании .htaccess, поэтому некоторые части могут быть излишними. Однако у меня это всегда работало.

Вот полный код. Создайте файл и поместите его в папку плагинов или mu-plugins. (не забудьте заменить все вхождения "dashboard" на желаемый URL админки)

<?php
/**
 * Plugin Name: Change My Admin URL
 * Plugin URI: http://wordpress.stackexchange.com/questions/106/can-i-rename-the-wp-admin-folder
 * Description: Меняет URL админки, где wp-admin становится dashboard (или любым другим указанным названием)
 * Version: 1.0
 * Author: Bryan Willis
 * Author URI: http://profiles.wordpress.org/codecandid
 * License: GPL2
 */

/* 

#ПЕРЕЗАПИСЬ URL АДМИНКИ ДЛЯ HTACCESS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^dashboard[^/]*$ dashboard/ [R=301,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^dashboard(.*)$ wp-admin$1? [QSA,L,NE]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/?$ / [NE,R=404,L]
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^wp-admin/(.*)$ dashboard/$1 [QSA,R=301,L,NE]
</IfModule>
#ПЕРЕЗАПИСЬ URL АДМИНКИ

*/

function my_custom_admin_url($path) { 
    return str_replace('wp-admin', 'dashboard', $path); 
}
add_filter('admin_url', 'my_custom_admin_url');

Проблемы?

У меня их не было за год использования этого метода. Вы можете заметить, что wp-admin всё ещё будет работать, что не очень хорошо, но это скорее мера предосторожности. У меня были плохо написанные плагины, которые жёстко прописывали wp-admin в некоторых местах и не загружались при попытке заблокировать или перенаправить wp-admin. Я уверен, что есть способ сделать это через htaccess, но я не смог разобраться. Также этот метод не тестировался на мультисайтах.

Обновление: Альтернативный подход

Это довольно похоже, но по какой-то причине мой предыдущий ответ не работал на всех хостингах.

Добавьте в .htaccess

RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]

Создайте файл в папке mu-plugins с именем new-admin.php и добавьте туда следующее:

<?php
define('WP_ADMIN_DIR', 'admin');
defined('SITECOOKIEPATH') || define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);

add_filter('site_url',  'wpadmin_filter', 10, 3);
 function wpadmin_filter( $url, $path, $orig_scheme ) {
  $old  = array( "/(wp-admin)/");
  $admin_dir = WP_ADMIN_DIR;
  $new  = array($admin_dir);
  return preg_replace( $old, $new, $url, 1);
}

Примечание: Этот подход лучше работал на некоторых хостингах, но всё равно оставалась проблема с перенаправлением ссылок wp-admin на новый URL админки. Вот подход, который я пробовал ниже. Хотя этот вариант не работает, я думаю, что он на правильном пути. Я не совсем уверен, какой хук использовать. Возможно, htaccess — лучшая альтернатива, но у меня возникали бесконечные редиректы при таком подходе.

add_action('init', 'redirect_wp_admin_url_to_404');
function redirect_wp_admin_url_to_404(){
  $redirect_to = $_SERVER['REQUEST_URI'];
  if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)){
    $redirect_to = $_REQUEST['redirect_to'];
    $check_wp_admin = stristr($redirect_to, 'wp-admin');
    if($check_wp_admin){
      wp_safe_redirect( '404.php' );
    }
  }
}
7 июн. 2014 г. 16:56:35
Комментарии

Аналогичный подход, реализованный в виде класса, можно найти здесь: http://wordpress.stackexchange.com/a/7832/76440

majick majick
17 мая 2016 г. 08:08:19

Спасибо, что указал на этот ответ, @makick! Это отличный ответ, и я фактически почерпнул оттуда некоторые идеи, но в моем случае он не работал во многих ситуациях, поэтому я внес свои изменения. Единственное, что я до сих пор пытаюсь разобрать — как перенаправлять все wp-admin ссылки, которые вводятся вручную в адресной строке. Не могу понять, как это сделать. Если будет возможность, попробуйте мой обновленный ответ внизу, использующий фильтр site_url вместо admin_url. Кажется, он работает довольно хорошо.

Bryan Willis Bryan Willis
27 мая 2016 г. 19:34:14
7
13

Нет, вы не можете переименовать папку. Путь жёстко прописан в нескольких местах исходного кода WordPress.

Безопасность через скрытность — это не настоящая безопасность в любом случае.

12 авг. 2010 г. 00:40:03
Комментарии

И это в лучшем случае ленивое оправдание, чтобы не менять плохие практики программирования, такие как жесткое кодирование магических чисел или строк.

hakre hakre
10 янв. 2011 г. 14:05:09

@hakre +100

Кстати, большинство людей, спрашивающих, как скрыть папки "wp-*", не обязательно ищут безопасность, они на самом деле ищут скрытность... они пытаются сделать анализ своих сайтов более трудоемким занятием.

Victor Farazdagi Victor Farazdagi
5 июл. 2011 г. 14:19:39

На самом деле, это не безопасность через скрытность. Это "скрытые URL", допустимая техника безопасности. Подробности смотрите в ответе ниже.

cmc cmc
15 мар. 2013 г. 13:47:36

Я попытался привести новые аргументы, но ответ был: "Это категорическое 'не будем исправлять' на мой взгляд" и довольно высокомерное "логин gmail тоже не является скрытым URL". Никаких технических причин, никаких объяснений, никакой дискуссии — они просто не хотят это делать.

cmc cmc
19 мар. 2013 г. 12:50:42

WordPress гораздо более уважаем, чем Gmail. Одна из причин — WordPress является открытым исходным кодом. Все знают его код. Безопасность через скрытность — это не настоящая безопасность? Но мы не разработчики WordPress. Это открытый исходный код. По моему мнению, скрытность действительно помогает в обеспечении безопасности. Почему люди используют зашифрованные пароли? Согласно этой логике, шифрование паролей бесполезно... Потому что если база данных доступна для просмотра, хакер может сделать что угодно... Мой WordPress взламывали 2 раза, и WordPress моей компании — 2 раза за 10 лет... А ни один из моих 6-7 аккаунтов Gmail не был взломан за 15 лет...

web2students.com web2students.com
19 авг. 2015 г. 14:34:16

То, о чем идет речь, — это не "безопасность через скрытность", а безопасность И скрытность. Даже банк с лучшим сейфом в мире не сделает его доступным прямо с улицы. Изменение имени директории значительно усложняет автоматизированные атаки.

JoLoCo JoLoCo
16 июн. 2017 г. 19:57:13

Это безопасность, потому что безопасность означает сделать что-то более защищенным. Оставить ваш сейф на улице, чтобы все могли угадывать код, гораздо менее безопасно, чем спрятать сейф в тайном месте.

David d C e Freitas David d C e Freitas
6 апр. 2024 г. 14:09:17
Показать остальные 2 комментариев
0
11

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

URL сайта: http://my-blog.com

URL админки: http://my-blog.com/7nxnkkugrdzm/wp-admin

Хотя это не дает полной свободы в изменении URL админки, вы можете добавить к нему любой префикс по вашему выбору. С точки зрения безопасности это так же эффективно. Кроме того, это дает преимущество в виде перемещения всех файлов WordPress в неизвестное пользователям место, что должно быть частью любой стратегии усиления безопасности WordPress.

Из WordPress Codex: Выделение WordPress отдельной директории

Также обратите внимание, что хотя эта схема безопасности называется Скрытый URL, это не то же самое, что безопасность через скрытность. Скрытый URL — это абсолютно валидная схема безопасности, которая так же надежна, как пароль, в то время как безопасность через скрытность полагается на использование секретных непроверенных методов.

Однако здесь действуют те же предостережения, что и с паролями: назовите кастомную папку чем-то вроде 7nxnkkugrdzm, а не happy-snappy-admin. Также убедитесь, что пользователи знают, что URL админки является секретным.

13 мар. 2013 г. 16:47:17
1

Есть действительно хорошее руководство по этому поводу:

Как скрыть информацию о WordPress в исходном коде зеркало

Включает переименование wp-content, wp-admin и удаление тега генератора WordPress.

Это руководство изменит явные признаки WordPress в вашем исходном коде, эффективно удалив информацию о WordPress с вашего сайта.

В нем объясняется, как изменить имя папки, URL входа в wp-admin и убедиться, что login.php перенаправляет на основной сайт, чтобы пользователи могли перейти туда напрямую.

9 янв. 2011 г. 20:09:26
Комментарии

Ссылка нерабочая (и заменена на вредоносное содержимое)

Gfra54 Gfra54
15 июн. 2021 г. 16:17:46
0

Если вы хотите скрыть директорию wp-admin от пользователей с уровнем подписчика, вы можете создать отдельные версии страниц входа/регистрации и профиля/редактирования в собственных директориях. Затем вы можете защитить папку администратора через htaccess или ограничение по IP. (Хотя если вы сделаете это, стоит сделать исключение для файла admin-ajax, так как некоторые плагины используют его для добавления AJAX-функциональности).

Такой подход дает вам желаемую "неочевидность" (которая на самом деле мало что дает, но часто успокаивает клиентов и менеджеров), а также добавляет реальную безопасность, ограничивая доступ к админке. Кроме того, честно говоря, URL вида "/login" выглядит гораздо приятнее, чем "wp-login.php".

Само собой разумеется, это не сделает ваш сайт неуязвимым. Но это хорошее базовое улучшение.

15 нояб. 2010 г. 09:11:50
0

Один из способов защиты административной панели управления — использование правил .htaccess. Просто добавьте файл .htaccess в корневую директорию wp-admin. После добавления файла, внесите следующее правило для запрета доступа со всех IP-адресов, кроме вашего:

http://wp.tutsplus.com/tutorials/10-steps-to-securing-your-wordpress-installation/

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Контроль доступа к админке WordPress"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
whitelist address
allow from <ВАШ IP-АДРЕС>
</LIMIT>
7 дек. 2011 г. 16:10:00
0

Если вы хотите переименовать wp-admin с целью добавления дополнительного уровня безопасности к вашей установке WordPress, вы также можете попробовать Roots / Bedrock WordPress Boilerplate. Это может помочь изолировать корневую веб-директорию для ограничения доступа к не-веб файлам. Также это может помочь в организации/защите всего ядра WordPress, поместив его в отдельную поддиректорию, например, переименовав wp-content/ в app/, а также предоставляет следующие дополнительные возможности:

  • Управление зависимостями с помощью Composer
  • Простая конфигурация WordPress с файлами для конкретных окружений
  • Переменные окружения с Dotenv
  • Автозагрузчик для mu-плагинов (использование обычных плагинов как mu-плагинов)
  • Улучшенная безопасность (отдельная корневая веб-директория и безопасные пароли с wp-password-bcrypt)

Вы также можете посмотреть их репозиторий на GitHub для более детального ознакомления с использованием:

16 мая 2016 г. 06:22:34
3

Ознакомьтесь с http://wordpress.org/extend/plugins/stealth-login/, это может вам помочь.

14 нояб. 2010 г. 23:09:02
Комментарии

У меня были проблемы с этим плагином, когда я пробовал его использовать. И похоже, что сейчас он не поддерживается и не совместим с WP 3.x

Rarst Rarst
14 нояб. 2010 г. 23:41:32

Ох... жаль, я не проверял это, я удалил его некоторое время назад. Но эй... может кто-то сможет починить, если это действительно необходимо.

edelwater edelwater
15 нояб. 2010 г. 02:58:09

В качестве альтернативы, посмотрите http://wordpress.stackexchange.com/questions/4037/how-to-redirect-rewrite-all-wp-login-requests

hakre hakre
10 янв. 2011 г. 14:07:29
0

Нет, переименовать папку wp-admin с помощью какого-либо кода или хакеров .htaccess невозможно.

Раньше я делал подобное для клиента, выполнив полный поиск по папкам через Coda (редактор, который я использую) по тегам "wp-admin, wp-content... и т.д." и удалил "wp-" из файлов.

После этого вы сможете установить систему, но:
Вам придется делать то же самое с плагинами, которые вы хотите установить, Вам придется обновлять ядро вручную, очищая тег "wp-" из новых версий.

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

Кристиан из Cozmolabs написал очень хороший туториал. Вы можете немного отредактировать код и заставить его работать в любой теме WordPress.

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

Здесь вы можете увидеть пример и код о том, как создать страницу публикации на фронтенде. Отправка публикаций с фронтенда

Также вы можете посмотреть на несколько хороших плагинов здесь, которые делают то же самое с большей функциональностью.

10 янв. 2011 г. 11:56:32
0

КАК НАСЧЁТ РАБОТЫ С WP-ADMIN ИЗ IFRAME?

Создайте новую страницу в админке WordPress под названием "Admin". Например: yourdomain/admin/

Вы можете использовать условные конструкции в файлах header.php, page.php и/или footer.php, чтобы отключить ненужные элементы шаблона, используя:

<?php
if(!is_page('admin')): //если это не страница "admin".

//оберните код, который не нужен.

else: ?>

<style type="text/css">
    .responsive-iframe {
    position: relative;
    padding-bottom: 56.25%; /*16:9*/
    height: 0;
    overflow: hidden;

    iframe {
        position: absolute;
        top:0;
        left: 0;
        width: 100%; //или 100vw
        height: 100%; //или 100vh
    }
}   
</style>

<div class="responsive-iframe">
<iframe seamless="seamless" scrolling="yes" src="http://yourdomain/wp-admin/" frameborder="0" allowfullscreen></iframe>
</div>

<?php 
endif;

Это не самое элегантное решение, но по крайней мере вы частично сможете скрыть wp-admin из URL. Другой способ - возможно использовать переадресацию домена с включённой маскировкой URL.

27 апр. 2019 г. 08:40:48
1

Я сам удаляю файл wp-login.php и загружаю его обратно через FTP перед тем, как войти в систему, а затем снова удаляю до следующего раза. В остальном я бы порекомендовал следующее:

  1. Плагин Wordfence значительно поможет блокировать попытки взлома. Используйте очень длинное и сложное имя пользователя для учетной записи администратора (хакеры и боты не ожидают, что люди будут использовать длинные имена пользователей, только пароли), такое, которое даже вы не сможете запомнить. Вход с помощью email-адреса, который вы указали, также является отличной практикой.
  2. Удалите содержимое файла comments.php и никогда не разрешайте комментарии на своем сайте, а также регистрацию новых пользователей. Лучше ограничить доступ только для администраторов и, возможно, авторов и редакторов, если они вам нужны. Удаление содержимого comments.php предотвращает множество случаев внедрения вредоносного кода и взломов.
  3. Используйте пробел между двумя словами в качестве имени для входа, так как большинство хакеров не догадываются, что можно использовать имя пользователя с пробелом, и часто применяют подчеркивания, даже когда угадывают ваше имя (особенно при социальной инженерии). Доказано, что длинные и сложные пароли не всегда надежнее, чем 8-символьные комбинации букв и цифр, так что это стоит изучить.
  4. И последнее, но не менее важное: нужно защищать не только login.php (кстати, никогда не используйте имя пользователя "[login]"), но и файл xml-rpc, который хакеры также любят использовать для попыток входа. Обычно такие атаки проводятся низкоквалифицированными злоумышленниками, использующими ИИ для автоматизации, и они просто пытают удачу. Но лучше перестраховаться. Плагин WP All in One Migration позволяет загрузить весь сайт с базой данных и настройками и восстановить его в случае взлома или удаления. Ежедневное резервное копирование перед сном гарантирует, что ваш сайт всегда будет в том состоянии, в котором вы его оставили. Храните резервные копии офлайн на внешнем жестком диске, и вы всегда будете в безопасности.

И еще: используйте минимальное количество плагинов, так как разработчики часто забрасывают их и не обновляют. Если ваш блог использует плагин (например, для вставки плейлистов YouTube), удаление устаревшего плагина может сделать множество постов бессмысленными из-за отсутствующего контента (всегда думайте наперед). Но обязательно используйте необходимые плагины, такие как Akismet, Wordfence (бесплатная версия) и WP All in One Migration для резервного копирования файлов, контента и базы данных сайта. Многие плагины содержат уязвимости, и быстрый анализ вашего сервера покажет хакеру все папки, что позволит ему атаковать через них. Не используйте Disqus или другие сторонние системы комментариев, так как через них собирается и утекает больше данных (например, YouTube недавно взломали через геометки в приложениях), чем пользы. Лучше создать страницу в Facebook и позволить людям комментировать там, но не встраивать виджеты или код, связывающий ваш сайт с другими доменами и их API, так как передаваемые данные легко перехватываются профессиональными хакерами. На моих сайтах WordPress нет кнопок комментариев и репостов именно по этой причине (и я прекрасно обхожусь без них). Например, если бы этот вопрос был видео на YouTube, все бы оставили WordPress на StackExchange (что не значит, что я против — StackExchange прекрасен!) и комментировали бы на YouTube. Это безопаснее. Так что создайте канал на YouTube и страницу в Facebook для комментариев, а сайт WordPress оставьте максимально простым, без возможности входа.

31 окт. 2020 г. 22:45:30
Комментарии

Этот ответ выглядит как просто мнение. Можете ли вы предоставить какие-либо исследования, подтверждающие данную методологию? Любые исследования, которые подтверждают ваши аргументы и утверждения?

Howdy_McGee Howdy_McGee
1 нояб. 2020 г. 00:07:14
0

Вы можете использовать плагин "HC Custom WP-Admin URL":

  • установите и активируйте плагин;
  • перейдите в Настройки --> Постоянные ссылки;
  • прокрутите вниз до "WP-Admin slug"; Измените slug;
  • выйдите из системы; -войдите снова, используя новый slug.
28 мар. 2023 г. 13:27:48