it-swarm.dev

Kann ich den Ordner wp-admin umbenennen?

Kann man den Ordner wp-admin umbenennen?

Ich weiß, ich könnte es einfach umbenennen, aber wenn es nicht vom Code unterstützt wird, würde vieles kaputt gehen.

Wenn ich einen benutzerdefinierten Ordnernamen verwende, wird dieser etwas sicherer, die Sicherheit durch Unbekanntheit und so weiter.

69
Adam Dempsey

Leider ist es derzeit nicht möglich und es scheint auch nicht möglich zu sein, es als Modifikation zu betrachten, wie Sie an diesem aktuellen Thread auf der Liste der wp-Hacker und diesem Ticket auf trac sehen können.

Wenn Sie wirklich möchten, dass dies noch einmal besucht wird, würde ich vorschlagen:

  1. Präsentieren Sie Ihren Fall auf wp-Hackern aber seien Sie gewarnt, Ihr Anwendungsfall ist besser gut und nicht "Sicherheit durch Dunkelheit", sonst wird er wie oben beschrieben abgeschossen.

  2. Präsentieren Sie Ihre Argumentation in einem Trac-Ticket mit den gleichen Vorbehalten.

  3. Noch besser ist es, einen Patch zum Trac hochzuladen, der die von Ihnen gewünschte Funktionalität ermöglicht. Es ist viel schwieriger, Nein zu sagen, wenn die Arbeit bereits erledigt ist (aber natürlich sagen sie viel häufiger "Nein" als "Ja", seien Sie also gewarnt.)

38
MikeSchinkel

Nein, Sie können den Ordner nicht umbenennen. Der Pfad ist an mehreren Stellen in der gesamten WordPress-Quelle fest programmiert.

Sicherheit durch Unbekanntheit ist sowieso keine wirkliche Sicherheit.

11
Viper007Bond

Die Leute stellen diese Frage immer wieder, aber die Leute markieren sie immer wieder als Duplikat. Die gewählte Antwort darauf ist jedoch keine Antwort auf die Frage.

Um den WordPress-Administrator umzubenennen, müssen Sie zwei Schritte ausführen.

Im folgenden Code verwende ich Dashboard als Namen meines neuen WP-Administrators. Ändern Sie das Dashboard im folgenden Code in einen beliebigen Namen für Ihren neuen Administrator.

Zuerst müssen Sie WordPress mitteilen, dass Sie die Admin-URL ändern möchten.

In Zeile 2558 ist wp-includes/link-template.php der Code, der die Admin-URL bestimmt.

Mit dem admin_url-Filter können Sie die URL des Administrators mit der folgenden Funktion erfolgreich ändern:

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

Sie können testen, wie Ihre neue URL lautet:

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

Wenn Sie jedoch beim Klicken durch den Administrator feststellen, dass nicht alles funktioniert und einige der Links möglicherweise dazu führen, dass Sie 404 nicht gefunden haben oder etwas Ähnliches.

Ändern Sie zweitens das .htaccess in Ihrem WordPress-Stammverzeichnis und fügen Sie am Anfang vor allem anderen Folgendes hinzu.

#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

Jetzt bin ich kein Experte, wenn es um das Bearbeiten von .htaccess geht, daher ist ein Teil davon möglicherweise nicht erforderlich. Ich habe jedoch nie festgestellt, dass es nicht funktioniert.

Hier ist das Ganze. Erstellen Sie eine Datei und legen Sie sie in Ihrem Plugins-Ordner oder Mu-Plugins-Ordner ab. (Denken Sie daran, jede Instanz des Dashboards in Ihre bevorzugte Administrator-URL zu ändern.)

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

Probleme?

Ich hatte seit über einem Jahr keine mehr mit dieser Methode. Sie werden vielleicht bemerken, dass wp-admin immer noch funktioniert, aber das ist mehr Vorsichtsmaßnahme als alles andere. Ich hatte einige schlecht geschriebene Plugins, die wp-admin an einigen Stellen fest codierten, die beim Versuch, wp-admin zu blockieren oder umzuleiten, nicht geladen wurden. Ich bin sicher, dass es einen Weg gibt, dies mit dem htaccess zu tun, aber ich habe es nicht erfolgreich herausgefunden. Auch dies wurde noch nie auf Multisite-Systemen oder Ähnlichem getestet.

Update: Alternativer Ansatz

Dies ist ziemlich ähnlich, aber aus irgendeinem Grund hat meine obige Antwort nicht auf jedem Host funktioniert, den ich ausprobiert habe.

Zu .htaccess hinzufügen

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

Erstelle eine Datei im mu-plugins Ordner namens new-admin.php und füge diese dort hinzu:

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

Hinweis: Dieser Ansatz schien auf einigen Hosts besser zu funktionieren, hatte aber immer noch das Problem, dass wp-admin-Links nicht auf die neue Admin-URL umgeleitet wurden. Hier ist ein Ansatz, den ich unten ausprobiert habe. Währenddies unten funktioniert nichtIch denke, es ist auf dem richtigen Weg. Ich bin mir nicht ganz sicher, welchen Haken ich verwenden soll. htaccess könnte eine bessere Alternative sein, aber ich bekam immer wieder Umleitungsschleifen, als ich das versuchte.

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

Ein Ansatz, der offiziell von WordPress unterstützt wird, besteht darin, die WordPress-Installationsdateien in ein Unterverzeichnis zu verschieben und dabei die Site im Stammverzeichnis zu belassen.

Site-URL: http://my-blog.com

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

Dies gibt Ihnen zwar nicht die vollständige Freiheit, Ihre Administrator-URL zu ändern, bedeutet jedoch, dass Sie sie mit jedem beliebigen Namen Präfix versehen können. Dies ist aus sicherheitstechnischer Sicht genauso gut. Es hat auch den Vorteil, dass alle WordPress-Installationsdateien an einen Speicherort verschoben werden, der den Benutzern nicht bekannt ist. Daher sollte es Teil jeder WordPress-Hardening-Strategie sein.

Aus dem WordPress-Codex: WordPress ein eigenes Verzeichnis geben

Beachten Sie auch, dass dieses Sicherheitsschema zwar Obscure URL heißt, aber nicht mit Sicherheit durch Unbekanntheit identisch ist. Obscure URL ist ein perfekt gültiges Sicherheitsschema, das genau so gut wie ein Passwort ist, während Sicherheit durch Unbekanntheit sich auf die Verwendung geheimer, unbewiesener Verfahren stützt.

Es gelten jedoch die gleichen Vorsichtsmaßnahmen wie bei Kennwörtern: Rufen Sie den benutzerdefinierten Ordner wie 7nxnkkugrdzm und nicht wie happy-snappy-admin auf. Stellen Sie außerdem sicher, dass Ihre Benutzer wissen, dass die Administrator-URL ein Geheimnis ist.

9
cmc

Es gibt tatsächlich ein sehr gutes Tutorial dazu hier:

So verstecken Sie WordPress-Informationen aus Ihrem Quellcode Spiegel

Enthält Anweisungen zum Umbenennen von WP-Inhalten, zum Umbenennen von WP-Admin und zum Entfernen des Generator-Tags aus WordPress.

In diesem Tutorial werden offensichtliche Beweise oder Hinweise darauf in Ihrem Quellcode geändert. Entfernen von WordPress-Informationen von Ihrer Site .

Hier erfahren Sie, wie Sie den Ordnernamen und die Anmelde-URL von wp-admin ändern und sicherstellen, dass login.php zur Hauptseite umleitet, damit die Benutzer direkt dorthin gelangen.

7
Graeme

Wenn Sie verhindern möchten, dass Benutzer auf Abonnentenebene das Verzeichnis wp-admin sehen, können Sie eigenständige Versionen der Anmelde-/Registrierungs- und Profil-/Bearbeitungsseiten in ihren eigenen Verzeichnissen erstellen. Anschließend können Sie Ihren Administratorordner über htaccess oder eine IP-Beschränkung schützen. (Wenn Sie dies tun, sollten Sie eine Ausnahme für die admin-ajax-Datei machen, da einige Plugins sie verwenden, um AJAX -Funktionalität hinzuzufügen.).

Dieser Ansatz gibt Ihnen die gewünschte "Unbekanntheit" (was nicht wirklich viel bewirkt, aber Kunden und Managern oft das Gefühl gibt, sich besser zu fühlen) und erhöht die echte Sicherheit, indem der Zugriff auf den Administrator eingeschränkt wird. Außerdem sieht eine URL, die nur "/ login" sagt, viel besser aus als "wp-login.php".

Es versteht sich von selbst, dass Ihre Website dadurch nicht kugelsicher wird. Aber es ist eine nette, grundlegende Verbesserung.

6
MathSmath

Eine Möglichkeit zum Sperren des Verwaltungssteuerungsfelds besteht in der Verwendung von .htaccess-Regeln. Fügen Sie einfach eine .htaccess-Datei zum Stammverzeichnis des Verzeichnisses wp-admin hinzu. Nachdem Sie diese Datei hinzugefügt haben, fügen Sie einfach die folgende Regel hinzu, um alle IP-Adressen zu verweigern und nur Ihre IP-Adresse zuzulassen:

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>
2
Josh

Wenn Sie den wp-admin umbenennen möchten, um Ihrer WordPress-Installation eine zusätzliche Sicherheitsebene hinzuzufügen, können Sie auch Roots/Bedrock WordPress Boilerplate versuchen. Es kann dabei helfen, das Webstammverzeichnis zu isolieren, um den Zugriff auf Nicht-Webdateien zu beschränken. Es kann auch beim Organisieren/Sichern des gesamten WordPress-Kerns helfen, indem es in ein eigenes Unterverzeichnis wie das Umbenennen von wp-content/in app/sowie in die folgenden zusätzlichen Funktionen gestellt wird:

  • Abhängigkeitsmanagement mit Composer
  • Einfache WordPress-Konfiguration mit umgebungsspezifischen Dateien
  • Umgebungsvariablen mit Dotenv
  • Autoloader für mu-Plugins (normale Plugins als mu-Plugins verwenden)
  • Verbesserte Sicherheit (getrennte Web-Root- und sichere Passwörter mit wp-password-bcrypt)

Sie können auch deren GitHub Repo für eine detailliertere Verwendung überprüfen:

1
Carl Alberto

WAS IST MIT DER ARBEIT VON WP-ADMIN AUS EINEM IFRAME?

Erstellen Sie im WP-Dashboard eine neue Seite mit dem Namen "Admin". Beispiel: IhreDomäne/admin /

Sie können eine case-Anweisung mit dem header.phppage.php und/oder footer.php abgeben, um nicht benötigte Elemente in der Vorlage zu deaktivieren.

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

Das ist nicht schön, aber zumindest in gewissem Maße können Sie wp-admin vor url verstecken. Eine andere Möglichkeit besteht darin, möglicherweise die Domänenweiterleitung mit aktivierter Masken-URL zu verwenden.

0
samjco

Werfen Sie einen Blick auf http://wordpress.org/extend/plugins/stealth-login/ dies kann Ihnen helfen.

0
edelwater

Nein, es ist nicht möglich, den Ordner "wp-admin" umzubenennen, wenn der Code oder der Hack "htaccess" fehlt.

In der Vergangenheit habe ich dasselbe für einen Client getan, indem ich eine vollständige Ordnersuche über Coda (den von mir verwendeten Editor) nach dem Tag "wp-admin, wp-content ... etc" durchgeführt habe und das "wp-" von der entfernt habe Dateien.

Danach können Sie es installieren, aber:
Sie müssen dasselbe mit den Plugins tun, die Sie installieren möchten. Sie müssen den Core manuell aktualisieren, indem Sie das "wp-" Tag aus den neuen Versionen entfernen.

Auf alle Fälle empfehle ich Ihnen, so etwas nicht zu tun, belassen Sie es wie es ist und versuchen Sie, eine Benutzer-Login/Register/Profil-Seite zu implementieren, um Ihren Benutzern/Kunden ein besseres Erlebnis zu bieten.

Cristian von Cozmolabs hat ein sehr gutes Tutorial geschrieben. Sie können den Code ein wenig bearbeiten und in einem beliebigen WordPress-Design ausführen.

Sie können auch ein Post-Formular über das Frontend hinzufügen, damit der Administrator und Benutzer mit den Funktionen zum Schreiben eines Posts dies über das Frontend tun können.

Hier sehen Sie ein Beispiel und einen Code zum Erstellen einer Frontend-Post-Seite. Einreichung des Front-End-Beitrags

Sie können hier auch nach einigen Nizza Plugins suchen , die dasselbe mit mehr Funktionalität tun.

0
Philip