Чи можу я перейменувати папку wp-admin?


69

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

Я знаю, що міг би просто перейменувати його, але, якщо це не підтримується кодом, багато речей зламаються.

Якщо я використовую ім’я спеціальної папки, це зробить її трохи більш захищеною, захищеністю від невідомості та всім цим.

Відповіді:


38

На жаль, наразі це неможливо, і, мабуть, не буде бажання розглядати це як модифікацію, як ви бачите за цією останньою темою у списку хакерів-wp та цим квитком на trac .

Якщо ви дійсно хочете, щоб це було переглянути, я б запропонував:

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

  2. Представіть свій аргумент у траєкторії з тими самими застереженнями.

  3. Ще краще, завантажте патч у trac, що забезпечує бажану функціональність. Набагато складніше сказати "ні", коли робота вже зроблена (але, звичайно, вони мають перевагу говорити "ні" набагато частіше, ніж кажуть "так", тому будьте попереджені.)


10
+1 вони мають перевагу говорити "ні" набагато частіше, ніж кажуть "так", тому будьте попереджені :)
Sisir

11

Ні, ви не можете перейменувати папку. Шлях кодується в декількох місцях у джерелі WordPress.

Безпека через незрозумілість насправді не є безпекою.


21
І це ледачий привід у кращому випадку для того, щоб не змінити поганих практик програмування, як жорстке кодування магічних чисел чи рядків.
хакре

6
@hakre +100 Btw, більшість людей запитують, як приховати папки "wp- *", не обов'язково шукаючи безпеку, вони насправді шукають незрозумілості. Вони намагаються зробити аналіз своїх сайтів більш активним завданням.
Віктор Фараздагі

3
Власне, це не безпека через незрозумілість. Це неясна URL-адреса, дійсна техніка безпеки. Деталі див. У відповіді нижче.
cmc

1
Ну, я спробував переглядати свіжий набір аргументів, але відповідь був: "Це сильне враження у книзі" і досить соплі "gmail login isnt незрозумілий URL". Ні технічних причин, ні пояснень, ні дебатів, вони просто не зроблять цього.
cmc

1
Wordpress набагато поважніший ніж gmail. Однією з причин є те, що wordpress є відкритим кодом. Код знає код. Безпека через невідомість взагалі насправді не є безпекою? Але ми не є кодером wordpress. Це з відкритим кодом. На мій погляд, незрозумілість допомагає забезпечити безпеку. Чому люди використовують шифрований пароль? Відповідно до цієї логіки, немає використання пароля шифрування .... Тому що, якщо базу даних можна побачити, хакер може зробити все, що завгодно ... Мій wordpress зламаний 2 рази та 2 рази Wordpress в 10 разів років ... І жоден з моїх акаунтів 6-7 gmail не зламаний за 15 років ...
web2students.com

11

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

Щоб перейменувати адміністратора wordpress, потрібно зробити два кроки.

У наступному коді я використовую інформаційну панель як ім'я мого нового wp-адміністру. Змініть інформаційну панель у наведеному нижче коді на те, що ви хочете назвати своїм новим адміністратором.

Спочатку потрібно сказати wordpress, що ви хочете змінити URL-адресу адміністратора.

У рядку 2558 wp-include / 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 і додайте наступне на початку перед усім.

#CUSTOM ADMIN URL REWRITE
<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>
#CUSTOM ADMIN URL REWRITE

Тепер я не фахівець, коли справа стосується редагування .htaccess, тому щось із цього може не бути необхідним. Однак я ніколи не виявив, що це працює.

Ось вся справа. Створіть файл і перепустіть у свою папку плагінів або папку mu-plugins. (не забудьте змінити кожен екземпляр інформаційної панелі на бажану URL-адресу адміністратора)

<?php
/**
 * Plugin Name: Change My Admin URL
 * Plugin URI: http://wordpress.stackexchange.com/questions/106/can-i-rename-the-wp-admin-folder
 * Description: Changes the admin url where wp-admin becomes dashboard (or whatever you change it to)
 * Version: 1.0
 * Author: Bryan Willis
 * Author URI: http://profiles.wordpress.org/codecandid
 * License: GPL2
 */

/* 

#CUSTOM ADMIN URL REWRITE FOR 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>
#CUSTOM ADMIN URL REWRITE

*/

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' );
    }
  }
}

Подібний підхід записаний у класі тут: wordpress.stackexchange.com/a/7832/76440
majick

Радий, що ти відповів на цю відповідь @makick! Це чудова відповідь. Насправді я отримав деякі ідеї, але, здається, це не спрацювало для мене у багатьох випадках, і саме тут змінилися мої зміни. Я все ще намагаюся з’ясувати, як перенаправити всі посилання wp-admin, які вручну вводяться в URL-адресі. Я, здається, не можу це зрозуміти. Якщо у вас є можливість, спробуйте мій відповідь оновлення донизу, використовуючи site_urlзамість цього фільтр admin_url. Здається, працює досить добре.
Брайан Вілліс

9

Підхід, офіційно підтримуваний 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-адреса адміністратора є секретом.


7

Насправді тут дуже хороший підручник:

Як приховати інформацію WordPress від дзеркала вашого вихідного коду

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

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

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


6

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

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

Само собою зрозуміло, що це не робить ваш сайт бездоганним. Але це приємне, базове вдосконалення.


2

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

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

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
whitelist address
allow from <IP ADDRESS HERE>
</LIMIT>

1

Якщо ви хочете перейменувати wp-admin з метою додавання додаткового рівня безпеки вашій установці WordPress, ви також можете спробувати Roots / Bedrock WordPress Boilerplate . Це може допомогти виділити веб-корінь, щоб обмежити доступ до не веб-файлів. Він також може допомогти в організації / забезпеченні всього ядра WordPress, розмістивши його у власному підкаталозі, як перейменування wp-content / to app /, а також ці додаткові функції:

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

Ви також можете перевірити їх GitHub Repo для більш детального використання:


0

Погляньте на http://wordpress.org/extend/plugins/stealth-login/, це може вам допомогти.


У мене виникли проблеми з цим плагіном, коли я його спробував. І наразі воно, схоже, не підтримується та не підтримує WP 3.x
Rarst

ах ... погано, не перевіряв, я деінсталював це деякий час тому. Але еге ... можливо, хтось може це виправити, якщо по-справжньому потребує.
edelwater

В якості альтернативи перегляньте wordpress.stackexchange.com/questions/4037/…
hakre

0

Ні, не можна перейменувати папку wp-admin з будь-яким недоліком коду або злом htaccess,

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

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

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

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

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

Тут ви можете побачити приклад та код того, як створити сторінку повідомлення Frontend. Подання на передній план

Крім того, ви можете подивитися кілька приємних плагінів тут, які роблять те ж саме з більшою функціональністю.


0

ЩО ПРО РОБОТУ WP-ADMIN OF IFRAME?

Створіть нову сторінку на панелі керування wp під назвою "Адміністратор". наприклад: yourdomain / admin /

Ви можете зробити випадок справи із header.php page.phpта / або footer.phpвідключити речі в шаблоні, не потрібні, використовуючи:

<?php
if(!is_page('admin')): //if not the admin page.

//wrap code not needed or wanted.

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%; //or 100vw
        height: 100%; //or 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-адресом маски.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.