Posso rinominare la cartella wp-admin?


70

È possibile rinominare la cartella wp-admin?

So che potrei semplicemente rinominarlo, ma a meno che non sia supportato dal codice molte cose non funzionerebbero.

Se uso un nome di cartella personalizzato, lo renderà leggermente più sicuro, la sicurezza dall'oscurità e tutto il resto.

Risposte:


39

Sfortunatamente al momento non è possibile né sembra esserci la volontà di considerarlo come una modifica, come puoi vedere da questo recente thread nell'elenco di wp-hacker e da questo ticket su trac .

Se desideri davvero vederlo rivisitato, ti suggerisco di:

  1. Presenta il tuo caso agli hacker di wp ma fai attenzione che il tuo caso d'uso sia meglio e non "sicurezza attraverso l'oscurità" o verrà abbattuto come sopra.

  2. Presenta la tua discussione in un ticket trac con gli stessi avvertimenti.

  3. Ancora meglio, carica una patch per trac che abilita la tua funzionalità desiderata. È molto più difficile dire di no quando il lavoro è già stato fatto (ma ovviamente hanno una preferenza per dire "no" molto più spesso di quanto affermino "sì", quindi sii avvisato.)


10
+1 preferiscono dire "no" molto più spesso di quanto dicono "sì", quindi sii avvisato :)
Sisir,

11

No, non è possibile rinominare la cartella. Il percorso è hardcoded in più posizioni nella fonte di WordPress.

La sicurezza attraverso l'oscurità non è comunque davvero sicurezza.


21
Ed è una scusa pigra nella migliore delle ipotesi per non cambiare cattive pratiche di programmazione come numeri magici o stringhe codificanti.
Hakre,

6
@hakre +100 A proposito, la maggior parte delle persone che chiedono come nascondere le cartelle "wp- *" non sono necessariamente alla ricerca della sicurezza, ma in realtà cercano l'oscurità ... cercano di rendere l'analisi dei loro siti un'attività più impegnativa.
Victor Farazdagi,

3
In realtà, non è sicurezza per oscurità. È Obscure URL, una tecnica di sicurezza valida. Vedi la risposta sotto per i dettagli.
cmc

1
Bene, ho provato a dare seguito a una nuova serie di argomenti, ma la risposta è stata: "Questo è un punto di forza nel libro" e il discreto "il login di Gmail non è neanche oscuro". Nessun motivo tecnico, nessuna spiegazione, nessun dibattito, semplicemente non lo faranno.
cmc

1
Wordpress è molto più venerabile di Gmail. Uno dei motivi è che wordpress è open source. Tutti conoscono il codice. La sicurezza attraverso l'oscurità non è davvero sicurezza comunque? Ma non siamo programmatori di wordpress. È open-source. A mio avviso, l'oscurità aiuta a rendere sicuro. Perché allora le persone usano la password crittografata? Secondo questa logica, non c'è uso della password di crittografia .... Perché se il database è visualizzabile, l'hacker può fare qualsiasi cosa ... Il mio wordpress viene hackerato 2 volte e 2 volte il wordpress della mia azienda in 10 anni ... E nessuno dei miei 6-7 account Gmail è stato violato da 15 anni fino ad ora ...
web2students.com

11

La gente continua a porre questa domanda, ma continua a contrassegnarla come duplicata. La risposta scelta per questo, tuttavia, in realtà non è una risposta alla domanda.

Per rinominare l'amministratore di wordpress è necessario eseguire due passaggi.

Nel seguente codice sto usando dashboard come nome del mio nuovo wp-admin. Cambia dashboard nel codice qui sotto in qualunque cosa tu voglia nominare il tuo nuovo amministratore.

Per prima cosa devi dire a wordpress che vuoi cambiare l'URL di amministrazione.

Sulla riga 2558 wp-Includes / link-template.php è il codice che deride l'URL di amministrazione.

Utilizzando il admin_urlfiltro è possibile modificare correttamente l'URL dell'amministratore con la seguente funzione:

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

Puoi testare per vedere qual è il tuo nuovo URL facendo questo:

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

Tuttavia, se noterai quando fai clic sull'amministratore che non tutto funziona e alcuni dei link potrebbero darti 404 non trovati o qualcosa di simile.

In secondo luogo, modifica .htaccess nella directory principale di wordpress e aggiungi quanto segue all'inizio prima di ogni altra cosa.

#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

Ora, non sono un esperto quando si tratta di modificare .htaccess, quindi alcuni di questi potrebbero non essere necessari. Tuttavia, non ho mai trovato che non funzionasse.

Ecco tutto. Crea un file e rilascialo nella cartella dei plugin o nella cartella mu-plugins. (ricorda di cambiare ogni istanza della dashboard nel tuo URL di amministrazione preferito)

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

Problemi?

Non ne ho avuto da più di un anno usando questo metodo. Potresti notare che wp-admin funzionerà ancora che tipo di schifo, ma è più una precauzione che altro. Avevo alcuni plugin scritti male che codificavano wp-admin in alcuni punti che non si caricavano quando cercavo di bloccare o reindirizzare wp-admin. Sono sicuro che c'è un modo per farlo con htaccess, ma non l'ho capito con successo. Inoltre, questo non è mai stato testato su siti multipli o simili.

Aggiornamento: approccio alternativo

Questo è abbastanza simile, ma per qualche ragione la mia risposta sopra non ha funzionato su tutti gli host che ho provato.

Aggiungere a .htaccess

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

Crea un file nella cartella mu-plugins chiamato new-admin.phpe aggiungilo qui:

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

Nota: questo approccio sembra funzionare meglio su alcuni host, ma presenta ancora il problema di non reindirizzare i collegamenti wp-admin al nuovo URL dell'amministratore. Ecco un approccio che ho provato di seguito. Mentre questo sotto non funziona, penso che sia sulla strada giusta. Non sono del tutto sicuro di quale gancio utilizzare. htaccess potrebbe essere un'alternativa migliore ma ho continuato a ricevere loop di reindirizzamento quando ho provato in quel modo.

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

C'è un approccio simile scritto in una classe qui: wordpress.stackexchange.com/a/7832/76440
Majick

Sono contento che tu abbia sottolineato la risposta a @makick! È un'ottima risposta ed è stato in realtà da cui ho avuto alcune idee, ma non sembrava funzionare per me in molti casi in cui sono entrati in gioco i miei cambiamenti. L'unica cosa che sto ancora cercando di capire è come reindirizzare tutti i collegamenti wp-admin digitati manualmente nell'URL. Non riesco a capirlo. Se hai la possibilità, prova la mia risposta di aggiornamento verso il basso usando il site_urlfiltro anziché admin_url. Sembra funzionare abbastanza bene.
Bryan Willis,

9

Un approccio ufficialmente supportato da WordPress è quello di spostare i file di installazione di WordPress in una sottodirectory, mantenendo il sito nella radice, in questo modo:

Indirizzo del sito: http://my-blog.com

URL amministratore: http://my-blog.com/7nxnkkugrdzm/wp-admin

Sebbene ciò non ti dia la completa libertà di modificare l'URL di amministrazione, significa che puoi aggiungere il prefisso a tutto ciò che ti piace. Questo è altrettanto buono dal punto di vista della sicurezza. Ha anche il vantaggio di spostare tutti i file di installazione di WordPress in una posizione sconosciuta agli utenti, quindi dovrebbe far parte di qualsiasi strategia di rafforzamento di wordpress.

Dal codice WordPress: dare a WordPress la propria directory

Inoltre, tieni presente che mentre questo schema di sicurezza è chiamato URL oscuro , non è la stessa cosa della sicurezza per oscurità . L'URL oscuro è uno schema di sicurezza perfettamente valido, valido quanto una password, mentre la sicurezza per oscurità si basa sull'utilizzo di procedure segrete non dimostrate.

Lo stesso vale per le password: chiama la cartella personalizzata in modo simile 7nxnkkugrdzm, non happy-snappy-admin. Inoltre, assicurati che i tuoi utenti siano consapevoli che l'URL di amministrazione è un segreto.


7

In realtà c'è un ottimo tutorial su questo qui:

Come nascondere le informazioni di WordPress dal mirror del codice sorgente

Include come rinominare wp-content, rinominare wp-admin e rimuovere il tag del generatore da WordPress.

Questo tutorial cambierà evidenze evidenti o indicazioni di esso nel tuo codice sorgente, rimuovendo efficacemente le informazioni di WordPress dal tuo sito .

Spiega come modificare il nome della cartella, l'URL di accesso di wp-admin e assicurarsi che login.php reindirizzi al sito principale in modo che le persone possano andare direttamente lì.


6

Se si desidera impedire agli utenti di livello abbonato di vedere la directory wp-admin, è possibile creare versioni autonome delle pagine di accesso / registrazione e profilo / modifica nelle proprie directory. Quindi, puoi proteggere la tua cartella di amministrazione tramite htaccess o restrizione IP. (Anche se in questo caso, dovresti fare un'eccezione per il file admin-ajax, poiché alcuni plugin lo usano per aggiungere la funzionalità AJAX).

Questo approccio ti dà l '"oscurità" che desideri (che non fa molto, ma spesso fa sentire meglio clienti e manager) e aggiunge anche un po' di sicurezza reale limitando l'accesso all'amministratore. Inoltre, onestamente, un URL che dice semplicemente "/ login" sembra molto più bello di "wp-login.php".

Va da sé che questo non rende il tuo sito antiproiettile. Ma è un bel miglioramento di base.


2

Un modo per bloccare il pannello di controllo amministrativo è utilizzare le regole .htaccess. Basta aggiungere un file .htaccess alla radice della directory wp-admin. Dopo aver aggiunto questo file, aggiungi la seguente regola per negare tutti gli indirizzi IP e consentire solo il tuo 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

Se vuoi rinominare wp-admin con l'obiettivo di aggiungere ulteriore livello di sicurezza all'installazione di WordPress, puoi anche provare la piastra di caldaia di WordPress Roots / Bedrock . Può aiutare a isolare la radice Web per limitare l'accesso ai file non Web. Può anche aiutare a organizzare / proteggere l'intero core di WordPress inserendolo nella propria sottodirectory come rinominare wp-content / in app / oltre a queste funzionalità aggiuntive:

  • Gestione delle dipendenze con Composer
  • Facile configurazione di WordPress con file specifici per l'ambiente
  • Variabili d'ambiente con Dotenv
  • Caricatore automatico per mu-plug-in (utilizzare plugin regolari come mu-plug-in)
  • Sicurezza avanzata (radice Web separata e password sicure con wp-password-bcrypt)

Puoi anche controllare il loro GitHub Repo per un utilizzo più dettagliato:



0

No, non è possibile rinominare la cartella wp-admin con qualsiasi codice corto o hack htaccess,

In passato ho fatto lo stesso per un client eseguendo una ricerca completa delle cartelle tramite Coda (l'editor che uso) per il tag "wp-admin, wp-content ... etc" e rimuovo "wp-" dal File.

Dopodiché sarai in grado di installarlo ma:
Devi fare lo stesso con i plugin che vuoi installare, Devi aggiornare il core manualmente cancellando il tag "wp-" dalle nuove versioni.

In tutti i modi non ti suggerisco di fare qualcosa del genere, lasciarlo così com'è e provare a implementare una pagina di accesso / registrazione / profilo utente per offrire ai tuoi utenti / clienti un'esperienza migliore.

Cristian di Cozmolabs ha scritto un ottimo tutorial. Puoi modificare un po 'il codice e farlo funzionare in qualsiasi tema di WordPress.

Puoi anche aggiungere un modulo Posta dal frontend in modo che l'amministratore e gli utenti con le capacità di scrivere un post possano farlo dal frontend.

Qui puoi vedere un esempio e un codice su come creare una pagina Post frontend. Invio post front-end

Inoltre puoi dare un'occhiata ad alcuni plugin interessanti che fanno lo stesso con più funzionalità.


0

CHE COSA LAVORA WP-ADMIN DA UN IFRAME?

Crea una nuova pagina nella dashboard di wp chiamata "Admin". ad es .: tuo dominio / admin /

Puoi fare una dichiarazione del caso con header.php page.phpe / o footer.phpper disabilitare cose sul modello non necessarie, usando:

<?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;

Questo non è carino, ma almeno in una certa misura puoi nascondere wp-admin da url. Un altro modo è utilizzare eventualmente l'inoltro di dominio con l'URL maschera abilitato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.