Pot redenumi folderul wp-admin?
Este posibil să redenumesc folderul wp-admin?
Știu că aș putea pur și simplu să-l redenumesc, dar dacă acest lucru nu este suportat de cod, multe lucruri s-ar strica.
Dacă folosesc un nume personalizat pentru folder, va face site-ul puțin mai sigur, securitate prin obscuritate și toate cele asociate.

Din păcate, în prezent acest lucru nu este posibil și nu pare să existe dorința de a-l considera ca o modificare, așa cum puteți vedea în acest thread recent de pe lista wp-hackers și acest tichet pe trac.
Dacă chiar doriți ca această problemă să fie reevaluată, vă sugerez:
Prezentați argumentele dumneavoastră pe wp-hackers, dar fiți atenți ca cazul dumneavoastră să fie solid și nu doar "securitate prin obscuritate", altfel va fi respins ca mai sus.
Prezentați argumentele în un tichet trac cu aceleași avertismente.
Și mai bine, încărcați un patch pe trac care să activeze funcționalitatea dorită. Este mult mai greu să spui "nu" când munca a fost deja făcută (dar, desigur, există o preferință pentru a spune "nu" mult mai des decât "da", așa că fiți atenți.)

+1
ei au tendința de a spune "nu" mult mai des decât spun "da", așa că fiți atenți :)

Având în vedere că acesta este răspunsul acceptat la o întrebare pe care mulți dintre noi o avem, chiar dacă sunt începător în WordPress, aș dori să adaug că se pare că există plugin-uri care permit redenumirea wp-admin și wp-login.php...

plugin-urile nu redenumesc wp-login.php
, ci creează pagini de autentificare complet noi și forțează WordPress să le folosească prin filtre, fișierul wp-login.php
rămâne în continuare prezent. Nu există soluții pentru mutarea wp-admin
deoarece este hardcodat aproape peste tot, deși redirectări către această cale sunt comune și unele sunt chiar incluse în nucleu ( /admin
și /login
)

Oamenii continuă să pună această întrebare, dar oamenii continuă să o marcheze ca fiind duplicat. Răspunsul ales pentru aceasta, totuși, nu este cu adevărat un răspuns la întrebare.
Pentru a redenumi administrarea WordPress, trebuie să parcurgi doi pași.
În codul următor, folosesc "dashboard" ca nume pentru noul meu wp-admin. Schimbă "dashboard" în codul de mai jos cu orice nume dorești pentru noul tău admin.
Mai întâi, trebuie să-i spui WordPress că vrei să schimbi URL-ul de administrare.
Pe linia 2558 wp-includes/link-template.php se află codul care determină URL-ul de administrare.
Folosind filtrul admin_url
, poți schimba cu succes URL-ul administrării cu următoarea funcție:
function my_custom_admin_url($path) {
return str_replace('wp-admin', 'dashboard', $path);
}
add_filter('admin_url', 'my_custom_admin_url');
Poți testa pentru a vedea care este noul tău URL făcând asta:
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' );
Totuși, dacă vei observa când navighezi prin administrare că nu totul funcționează și unele link-uri pot să-ți dea eroarea 404 sau ceva similar.
În al doilea rând, schimbă fișierul .htaccess din directorul rădăcină al WordPress-ului tău și adaugă următoarele la început, înainte de orice altceva.
#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
Acum, nu sunt un expert când vine vorba de editarea .htaccess, așa că unele dintre acestea ar putea să nu fie necesare. Totuși, nu am găsit niciodată să nu funcționeze.
Iată întregul cod. Creează un fișier și pune-l în folderul de plugin-uri sau mu-plugins. (amintește-ți să schimbi fiecare instanță a "dashboard" cu URL-ul de administrare preferat)
<?php
/**
* Plugin Name: Schimbă URL-ul de Administrare
* Plugin URI: http://wordpress.stackexchange.com/questions/106/can-i-rename-the-wp-admin-folder
* Description: Schimbă URL-ul de administrare unde wp-admin devine dashboard (sau orice îl schimbi tu)
* 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?
Nu am avut nicio problemă în peste un an de folosire a acestei metode. Poate vei observa că wp-admin va funcționa în continuare, ceea ce e cam enervant, dar este mai mult o măsură de precauție. Am avut niște plugin-uri prost scrise care aveau wp-admin hardcodat în unele locuri și nu se încărcau când încercam să blochez sau să redirecționez wp-admin. Sunt sigur că există o modalitate de a face asta cu htaccess, dar nu am reușit să o descopăr. De asemenea, acest lucru nu a fost testat pe multisite sau ceva similar.
Actualizare: Abordare Alternativă
Aceasta este destul de similară, dar din anumite motive, răspunsul meu de mai sus nu a funcționat pe fiecare gazdă pe care am încercat.
Adaugă în .htaccess
RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]
Creează un fișier în folderul mu-plugins numit new-admin.php
și adaugă acolo:
<?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);
}
Notă: Această abordare a părut să funcționeze mai bine pe unele gazde, dar totuși avea problema de a nu redirecționa link-urile wp-admin către noul URL de administrare. Iată o abordare pe care am încercat-o mai jos. Deși acest lucru nu funcționează, cred că este pe drumul cel bun. Nu sunt total sigur ce hook să folosesc. htaccess ar putea fi o alternativă mai bună, dar am tot primit bucle de redirecționare când am încercat în acel fel.
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' );
}
}
}

Există o abordare similară scrisă într-o clasă aici: http://wordpress.stackexchange.com/a/7832/76440

Mă bucur că ai menționat acel răspuns @makick! Este un răspuns excelent și de acolo mi-am luat unele idei, dar nu a funcționat pentru mine în multe cazuri, motiv pentru care am făcut modificările mele. Lucrul pe care încă încerc să-l rezolv este cum să redirecționez toate linkurile wp-admin care sunt introduse manual în adresă. Nu reușesc să-mi dau seama cum să fac asta. Dacă ai ocazia, încearcă răspunsul meu actualizat de la sfârșit, folosind filtrul site_url
în loc de admin_url
. Se pare că funcționează destul de bine.

Și este cel mult o scuză leneșă pentru a nu schimba practici de programare proaste precum utilizarea numerelor sau șirurilor magice hard-codate.

@hakre +100
Apropo, majoritatea oamenilor care întreabă cum să ascundă folderele "wp-*" nu caută neapărat securitate, ci mai degrabă obscuritate... încearcă să facă analiza site-urilor lor o activitate care necesită mai mult efort.

De fapt, nu este securitate prin obscuritate. Este URL obscur, o tehnică validă de securitate. Vezi răspunsul de mai jos pentru detalii.

Ei bine, am încercat să urmăresc cu un set nou de argumente, dar răspunsul a fost: "Aceasta este o decizie fermă de 'nu vom repara' în cartea mea" și destul de arogant "nici login-ul de gmail nu are un URL obscur". Niciun motiv tehnic, nicio explicație, nicio dezbatere, pur și simplu nu vor face asta.

WordPress este mult mai venerabil decât Gmail. Un motiv este că WordPress este open-source. Toată lumea cunoaște codul. Securitatea prin obscuritate nu este cu adevărat securitate oricum? Dar noi nu suntem developeri de WordPress. Este open-source. În opinia mea, obscuritatea ajută la crearea securității. De ce oamenii folosesc parole criptate atunci? Conform acestei logici, nu are rost să criptezi parolele... Pentru că dacă baza de date este vizibilă, hackerii pot face orice... WordPress-ul meu a fost hackuit de 2 ori și de 2 ori WordPress-ul companiei mele în 10 ani... Și niciunul dintre cele 6-7 conturi Gmail nu a fost hackuit în 15 ani până acum...

Ceea ce se cere nu este "securitate prin obscuritate" – ci securitate ȘI obscuritate. Chiar și o bancă cu cel mai bun seif din lume nu l-ar face accesibil direct de pe stradă. Schimbarea numelui directorului face atacurile automate mult mai greu de realizat.

O abordare oficial acceptată de WordPress este mutarea fișierelor de instalare WordPress într-un subdirector, păstrând în același timp site-ul în directorul rădăcină, astfel:
URL site: http://my-blog.com
URL admin: http://my-blog.com/7nxnkkugrdzm/wp-admin
Deși această metodă nu vă oferă libertate totală în schimbarea URL-ului de administrare, înseamnă că îl puteți prefixa cu orice doriți. Din punct de vedere al securității, acest lucru este la fel de eficient. De asemenea, are avantajul de a muta toate fișierele de instalare WordPress într-o locație necunoscută utilizatorilor, așa că ar trebui să facă parte din orice strategie de securizare WordPress.
Din WordPress Codex: Mutarea WordPress în propriul director
De remarcat, deși această metodă de securitate se numește URL obscur, nu este același lucru cu securitate prin obscuritate. URL obscur este o metodă de securitate perfect validă, la fel de eficientă ca o parolă, în timp ce securitatea prin obscuritate se bazează pe utilizarea unor proceduri secrete neverificate.
Totuși, aceleași precauții se aplică ca și în cazul parolelor: denumiți directorul personalizat ceva de genul 7nxnkkugrdzm
, nu happy-snappy-admin
. De asemenea, asigurați-vă că utilizatorii sunt conștienți că URL-ul de administrare este un secret.

Există de fapt un tutorial foarte bun despre acest subiect aici:
Cum să ascunzi informațiile WordPress din codul sursă oglindă
Include cum să redenumești wp-content, să redenumești wp-admin și să elimini eticheta generator din WordPress.
Acest tutorial va schimba dovezile evidente sau indicațiile acestora în codul sursă, eliminând efectiv informațiile WordPress de pe site-ul tău.
Explică cum să schimbi numele folderului, URL-ul de autentificare wp-admin și cum să te asiguri că login.php redirecționează către site-ul principal, astfel încât oamenii să poată accesa direct acolo.

Dacă dorești să previi utilizatorii cu nivel de subscriber să acceseze directorul wp-admin, poți crea versiuni independente ale paginilor de autentificare/înregistrare și de profil/editare în directoare separate. Apoi, poți proteja folderul de administrare prin htaccess sau restricții de IP. (Deși dacă faci asta, ar fi bine să faci o excepție pentru fișierul admin-ajax, deoarece unele plugin-uri îl folosesc pentru a adăuga, să zicem, funcționalități AJAX).
Această abordare îți oferă "obscuritatea" dorită (care nu face prea multe, dar adesea face clienții și managerii să se simtă mai bine), și de asemenea adaugă un plus de securitate prin limitarea accesului la panoul de administrare. În plus, sincer, un URL care pur și simplu arată "/login" este mult mai elegant decât "wp-login.php".
Ar trebui să fie de la sine înțeles că asta nu face site-ul tău impenetrabil. Dar este o îmbunătățire drăguță și de bază.

O modalitate de a securiza panoul de control administrativ este utilizarea regulilor .htaccess. Pur și simplu adăugați un fișier .htaccess în directorul rădăcină al wp-admin. După ce ați adăugat acest fișier, includeți următoarea regulă pentru a refuza toate adresele IP și a permite doar adresa IP a dumneavoastră:
http://wp.tutsplus.com/tutorials/10-steps-to-securing-your-wordpress-installation/
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Control Acces Administrare WordPress"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
whitelist address
allow from <ADRESA IP AICI>
</LIMIT>

Dacă dorești să redenumești directorul wp-admin cu scopul de a adăuga un strat suplimentar de securitate la instalarea ta WordPress, poți încerca și Roots / Bedrock WordPress Boilerplate. Acesta poate ajuta la izolarea directorului rădăcină (web root) pentru a limita accesul la fișierele non-web. De asemenea, poate ajuta la organizarea/securizarea întregului nucleu WordPress prin plasarea acestuia într-un subdirector separat, cum ar fi redenumirea wp-content/ în app/, precum și aceste caracteristici suplimentare:
- Gestionarea dependențelor cu Composer
- Configurare ușoară a WordPress cu fișiere specifice mediului
- Variabile de mediu cu Dotenv
- Autoloader pentru mu-plugins (folosește plugin-uri obișnuite ca mu-plugins)
- Securitate sporită (director rădăcină web separat și parole securizate cu wp-password-bcrypt)
Poți verifica și depozitul lor GitHub pentru detalii mai ample despre utilizare:

Aruncă o privire la http://wordpress.org/extend/plugins/stealth-login/, acest plugin ar putea să te ajute.

Am avut probleme cu acel plugin când l-am încercat. Și în prezent nu pare să fie întreținut sau compatibil cu WP 3.x

ah... păcat, nu am verificat, l-am dezinstalat acum ceva timp. Dar hei... poate cineva îl poate repara dacă este cu adevărat nevoie.

ca alternativă, te rog să consulți http://wordpress.stackexchange.com/questions/4037/how-to-redirect-rewrite-all-wp-login-requests

Nu, nu este posibil să redenumești folderul wp-admin folosind vreun fel de cod sau hack în .htaccess,
În trecut am făcut același lucru pentru un client prin efectuarea unei căutări complete a folderului în Coda (editorul pe care îl folosesc) pentru tag-urile "wp-admin, wp-content...etc" și am eliminat "wp-" din fișiere.
După aceea vei putea să-l instalezi, dar:
Va trebui să faci același lucru și cu plugin-urile pe care vrei să le instalezi,
Va trebui să actualizezi manual nucleul prin eliminarea tag-ului "wp-" din noile versiuni.
În orice caz, nu vă sugerez să faceți așa ceva, lăsați-l așa cum este și încercați să implementați o pagină de Autentificare/Înregistrare/Profil Utilizator pentru a oferi utilizatorilor/clienților voștri o experiență mai bună.
Cristian de la Cozmolabs a scris un tutorial foarte bun. Puteți edita puțin codul și să-l faceți să funcționeze în orice temă WordPress.
De asemenea, puteți adăuga un formular pentru articole din frontend, astfel încât Administratorii și Utilizatorii cu drepturile necesare să poată scrie articole direct din frontend.
Aici puteți vedea un exemplu și cod despre cum să creați o pagină pentru Postare din Frontend. Postare din Frontend
De asemenea, puteți arunca o privire la câteva plugin-uri aici care fac același lucru cu mai multe funcționalități.

CUM RĂMÂNE CU ACCESAREA WP-ADMIN DINTR-UN IFRAME?
Crează o pagină nouă în panoul de administrare WordPress numită "Admin". De exemplu: domeniultau/admin/
Poți folosi o structură condițională în fișierele header.php
, page.php
și/sau footer.php
pentru a dezactiva elementele de pe șablon care nu sunt necesare, folosind:
<?php
if(!is_page('admin')): //dacă nu este pagina de admin.
//încadrează codul care nu este necesar sau dorit.
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%; //sau 100vw
height: 100%; //sau 100vh
}
}
</style>
<div class="responsive-iframe">
<iframe seamless="seamless" scrolling="yes" src="http://domeniultau/wp-admin/" frameborder="0" allowfullscreen></iframe>
</div>
<?php
endif;
Această metodă nu este cea mai elegantă, dar măcar poți ascunde wp-admin din URL. O altă posibilitate este să folosești redirecționare de domeniu cu mascare URL activată.

Eu însumi șterg fișierul wp-login.php și îl încarc prin FTP înainte să mă autentific, apoi îl șterg din nou până data viitoare Dar aș spune altfel:
- Pluginul Wordfence va ajuta foarte mult în blocarea încercărilor de hacking uman. Folosește un nume de utilizator foarte lung și complex pentru contul de administrator (hackerii și botii nu presupun că oamenii folosesc nume de utilizator lungi, doar parole), unul pe care nici tu nu-l poți ține minte, și autentifică-te folosind adresa de email în schimb, este de asemenea o soluție excelentă.
- Șterge conținutul fișierului comments.php și nu permite niciodată comentarii pe site-ul tău, nici înregistrări de utilizatori, este cel mai bine, restrângând accesul doar la administratori și poate autorii și editorii dacă ai nevoie. Ștergerea conținutului comments.php previne multe infecții cu malware și hack-uri.
- Pune un spațiu între două cuvinte ca nume de utilizator, deoarece majoritatea hackerilor nu realizează că poți folosi un nume de utilizator cu spațiu gol și folosesc adesea underscore chiar și când ghicesc numele tău de utilizator (hackeri umani folosind social engineering). Parole lungi și complexe s-au dovedit a nu fi mai sigure decât o parolă de 8 caractere/cifre, așa că asta este de studiat.
- Last but not least, trebuie să protejezi nu doar login.php (apropo, nu folosi niciodată numele de utilizator "[login]"), ci și fișierul xml rpc care este alt fișier pe care hackerii îl folosesc pentru încercări de autentificare. De obicei acest tip de atac este făcut de un individ de nivel scăzut cu puține cunoștințe de hacking real, folosind AI pentru a face treaba, și încearcă doar norocul. Dar mai bine să fii în siguranță decât să regreți. De asemenea, WP All in One Migration Plugin îți permite să descarci întregul site cu baza de date și configurație și să-l încarci din nou în caz de hack și ștergere a site-ului. O copie de rezervă zilnică înainte de culcare va asigura că site-ul tău va fi întotdeauna așa cum era înainte să te culci. Salvează offline pe hard disk (extern) și vei fi mereu în siguranță. Și ține pluginurile la minimum, deoarece deseori sunt lăsate de dezvoltatori fără actualizări, iar dacă blogul tău a folosit pluginul (de exemplu pluginuri pentru playlist-uri YouTube) pentru postare, ștergerea unui plugin învechit va face multe postări să devină fără sens cu conținut lipsă (gândește întotdeauna înainte). Dar folosește pluginurile necesare precum Akismet, Wordfence gratuit și WP All in One Migration Tool pentru backup la fișierele site-ului, conținut și baza de date. Multe pluginuri au și vulnerabilități, iar o scurtă scanare a serverului tău va arăta toate folderele hackerului, care va ști că ai pluginul și va ataca prin el. Nu folosi nici Disqus sau alte formulare de comentarii terțe, deoarece sunt mai multe date care sunt colectate și compromise prin intermediul unor părți terțe (YouTube a fost recent hack-uit folosind etichetarea locației în aplicații), decât este de ajutor. Mai bine să ai o pagină Facebook și să lași oamenii să comenteze acolo, dar să nu inserezi widget-uri sau cod care să se lege de alte domenii și API-urile lor prea mult, deoarece datele comunicate și partajate sunt interceptate ușor de hackeri profesioniști. Eu nu am butoane de comentarii sau share pe site-urile mele WordPress din acest motiv (și merg bine și trăiesc bine fără nevoia de comentarii pentru tipul meu de site-uri). De exemplu, dacă această întrebare ar fi fost un videoclip YouTube, toți ar fi părăsit WordPress pe StackExchange (nu că aș sugera asta, Stack Exchange este fantastic!) și ar fi comentat pe canalul lor YouTube în schimb. Mai sigur, mai securizat. Așa că creează un canal YouTube și o pagină Facebook și folosește-le pentru a lăsa oamenii să "se înregistreze și să comenteze", păstrând site-ul WordPress cât mai simplu posibil, fără opțiuni de autentificare
