Wp-admin klasörünü yeniden adlandırabilir miyim?


70

Wp-admin klasörünü yeniden adlandırmak mümkün müdür?

Bunu yeniden adlandıracağımı biliyorum, ancak kodla desteklenmediği sürece birçok şey bozulur.

Özel bir klasör adı kullanırsam, gizlilik ve benzeri şeylerle güvenliği biraz daha güvenli kılar.

Yanıtlar:


39

Maalesef şu anda mümkün değil ve wp-hackerlar listesinde ve bu bilette trac'teki bu konu ile görebileceğiniz gibi bir değişiklik olarak kabul edilecek gibi görünmüyor .

Bunun tekrar gözden geçirilmesini gerçekten görmek istersen şunu öneririm:

  1. Wp hacker'lar için davanızı sunun ancak kullanım durumunuz için uyarılsanız iyi olur, "belirsizlik yoluyla güvenlik" olmasa iyi olur, yoksa yukarıdaki gibi düşürülür.

  2. Argümanınızı aynı uyarıda bulunan trac biletinde sunun .

  3. Daha da iyisi, istediğiniz işlevselliği sağlayan trac'e bir yama yükleyin . İşin daha önce yapıldığı zamanlarda hayır demek daha zordur (ama elbette, "evet" demekten çok daha sık "hayır" demeyi tercih ederler, bu yüzden uyarılmalıdır.)


10
+1 "hayır" demeyi tercih ettikleri gibi, "evet" dediklerinden çok daha sık, bu yüzden uyarılmalıdır :)
Sisir

11

Hayır, klasörü yeniden adlandıramazsınız. Yol, WordPress'in kaynağı boyunca birden fazla konumda kodlanmıştır.

Müstehcenlik yoluyla güvenlik zaten güvenlik değildir.


21
Sabit kodlama sihirli sayıları veya karakter dizileri gibi kötü programlama uygulamalarını değiştirmemek için en iyi ihtimalle tembel bir bahane.
hakre

6
@hakre +100 Btw, çoğu kişi "wp- *" klasörlerini nasıl gizleyeceğinizi soruyor, zorunlu olarak güvenlik arayışında değil, aslında belirsizliği arıyorlar.
Victor Farazdagi,

3
Aslında, belirsizlik yüzünden güvenlik değil. Gizli bir URL, geçerli bir güvenlik tekniği. Ayrıntılar için aşağıdaki cevaba bakınız.
cmc

1
Eh, yeni bir argüman dizisi izlemeye çalıştım, ama cevabı şuydu: "Bu, kitapta güçlü bir sorun değil" ve daha ziyade "gmail girişi ya da belirsiz url" değil. Teknik sebepler yok, açıklama yok, tartışma yok, onlar bunu yapmayacak.
cmc

1
Wordpress, gmail'den çok daha değerlidir. Bunun bir nedeni, wordpress açık kaynaktır. Herkes kodu biliyor. Müstehcenlik yoluyla güvenlik zaten gerçekten güvenlik değil mi? Fakat biz bir wordpress kodlayıcısı değiliz. Açık kaynak. Benim görüşüme göre, gizlilik güvenli hale getirmede yardımcı olur. Neden insanlar şifreli şifreyi kullanıyorlar? Bu mantığa göre, şifreleme şifresinin kullanımı yok ... Çünkü veritabanı görüntülenebilirse, hacker bir şey yapabilir ... WordPress'im 10 ve 2 kez şirketimin WordPress'inden hacklendi. yıllar ... Ve 6-7 gmail hesaplarının hiçbiri ... şimdiye kadar 15 yıl içinde başkaları tarafından ele geçirilirse
web2students.com

11

İnsanlar bu soruyu sormaya devam ediyor, ancak insanlar bunu bir kopya olarak işaretlemeye devam ediyor. Ancak bunun için seçilen cevap, sorunun gerçekten bir cevabı değil.

WordPress admin'i yeniden adlandırmak için iki adım atmanız gerekir.

Aşağıdaki kodda, yeni wp-admin'imin adı olarak gösterge panosunu kullanıyorum. Aşağıdaki koddaki gösterge tablosunu yeni yöneticinize adlandırmak istediğiniz şekilde değiştirin.

Öncelikle, yönetici URL'sini değiştirmek istediğinizi wordpress'e söylemeniz gerekir.

Satırda 2558 wp-includes / link-template.php yönetici url dertermines koddur.

admin_urlFiltreyi kullanarak, yönetici URL'sini aşağıdaki işlevle başarılı bir şekilde değiştirebilirsiniz:

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

Yeni URL’nizin ne olduğunu görmek için bunu yaparak test edebilirsiniz:

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

Ancak, yönetici tıklandığında her şeyin işe yaramadığını ve bağlantıların bazılarının 404 bulunamadığını veya benzer bir şey verebileceğini fark ederseniz.

İkinci olarak, wordpress kök dizininizdeki .htaccess dosyasını değiştirin ve başka bir şeyden önce başlangıçtakileri ekleyin.

#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

Şimdi, htaccess düzenleme konusunda uzman değilim, bu yüzden bazıları gerekli olmayabilir. Ancak, çalışmamayı asla bulamadım.

İşte her şey. Bir dosya oluşturun ve eklentiler klasörünüze veya mu-plugins klasörünüze bırakın. (her pano örneğini tercih ettiğiniz yönetici URL'sine değiştirmeyi unutmayın)

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

Sorunlar?

Bu metodu kullanarak bir yılı aşkın bir süredir kullanmadım. Wp-admin'in hala ne tür bir berbat işleyeceğini farkedebilirsiniz, ancak bu her şeyden çok bir önlemdir. Wp-admin'i engellemeye veya yönlendirmeye çalışırken yüklenmeyecek bazı yerlerde wp-admin kodunu yazan bazı kötü yazılmış eklentilerim vardı. Bunu htaccess ile yapmanın bir yolu olduğundan eminim, ama başarılı bir şekilde çözemedim. Ayrıca, bu multisite veya hiç böyle bir şey üzerinde test edilmemiştir.

Güncelleme: Alternatif Yaklaşım

Bu oldukça benzer, ancak nedense yukarıdaki cevabım denediğim her sunucuda işe yaramadı.

a ekle .htaccess

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

Mu-plugins klasöründe bir dosya oluşturun new-admin.phpve buraya şunu ekleyin:

<?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: Bu yaklaşım bazı ev sahiplerinde daha iyi çalışıyor gibi gözükse de, wp-admin bağlantılarını yeni yönetici url'sine yönlendirmeme sorunu vardı. İşte aşağıda denediğim bir yaklaşım. Bu işe yaramazken, bence doğru yolda. Hangi kancanın kullanılacağından emin değilim. Htaccess daha iyi bir alternatif olabilir ama ben bu şekilde denediğimde yönlendirici döngüler elde etmeye devam ettim.

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

Burada bir sınıfa yazılmış benzer bir yaklaşım var: wordpress.stackexchange.com/a/7832/76440
majick

Makick bu cevabı işaret ettiğine sevindim! Bu harika bir cevaptı ve aslında bazı fikirler aldığım yerdi, fakat değişikliklerimin gerçekleştiği birçok durumda benim için işe yaramadı. Hala anlamaya çalıştığım tek şey, url'ye elle yazılan tüm wp-admin bağlantılarının nasıl yönlendirileceğidir. Bunu çözecek gibi görünmüyorum. Bir şansınız olursa, güncelleme yanıtımı site_urlyerine filtreyi kullanarak aşağı doğru deneyin admin_url. Oldukça iyi iş gibi görünüyor.
Bryan Willis

9

Resmen WordPress tarafından desteklenen bir yaklaşım, WordPress kurulum dosyalarının bir alt dizine taşınması ve sitenin kökünde tutulmasıdır.

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

Yönetici URL’si: http://my-blog.com/7nxnkkugrdzm/wp-admin

Bu, yönetici URL'nizi değiştirmede size tam bir özgürlük sunmamakla birlikte, istediğiniz herhangi bir şeyi önekleyebileceğiniz anlamına gelir . Bu, güvenlik açısından da iyidir. Ayrıca, tüm WordPress kurulum dosyalarını kullanıcılar tarafından bilinmeyen bir yere taşıma avantajına sahiptir, bu nedenle herhangi bir wordpress sertleştirme stratejisinin bir parçası olmalıdır.

WordPress Kodeksinden: WordPress'e Kendi Dizini Vermek

Ayrıca, bu güvenlik şeması Gizli URL olarak adlandırılırken , belirsizliğin güvenlikle aynı olmadığını unutmayın . Gizli URL , geçerli bir şekilde geçerli bir güvenlik şemasıdır ve bir şifre kadar iyidir; ancak gizlilikten kaynaklanan güvenlik gizli kanıtlanmamış prosedürleri kullanmaya dayanır.

Aynı uyarılar parolalarda olduğu gibi uygulanır: Özel klasörü 7nxnkkugrdzmdeğil, buna benzer bir şeyi arayın happy-snappy-admin. Ayrıca, kullanıcılarınızın yönetici URL'sinin bir sır olduğunu bildiğinden emin olun.


7

Bu konuda gerçekten çok iyi bir eğitim var:

WordPress Bilgilerini Kaynak Kod aynanızdan Gizleme

Wp içeriğinin nasıl yeniden adlandırılacağı, wp-admin'in yeniden adlandırılması ve generator etiketinin WordPress'ten nasıl çıkarılacağı dahildir.

Bu eğitim, WordPress bilgilerini sitenizden etkin bir şekilde kaldırarak , kaynak kodunuzdaki bariz kanıtları veya göstergelerini değiştirecektir .

Bu, klasör adının, wp-admin giriş URL'sinin nasıl değiştirileceğini ve login.php'nin, insanların doğrudan oraya gidebilmesi için ana siteye yönlendirildiğinden emin olduğunu açıklar.


6

Abone düzeyinde kullanıcıların wp-admin dizinini görmesini engellemek istiyorsanız, giriş / kayıt ve profil / düzenleme sayfalarının kendi sürümlerinde bağımsız sürümleri oluşturabilirsiniz. Ardından, yönetici klasörünüzü htaccess veya IP kısıtlamasıyla koruyabilirsiniz. (Bunu yaparsanız da, bazı eklentiler AJAX işlevselliği eklemek için kullandığından admin-ajax dosyası için bir istisna yapmanız gerekir).

Bu yaklaşım, istediğiniz "belirsizliği" sağlar (bu gerçekten çok fazla bir şey yapmaz, ancak müşterileri ve yöneticileri daha iyi hissettirir) ve ayrıca yöneticiye erişimi sınırlayarak gerçek bir güvenlik sağlar. Artı, dürüst olmak gerekirse, sadece "/ login" yazan bir URL "wp-login.php" den çok daha güzel görünüyor.

Bunun sitenizi kurşun geçirmez yapmadığını söylemeden geçmesi gerekir. Ama bu güzel, temel bir gelişme.


2

Yönetici kontrol panelini kilitlemenin bir yolu .htaccess kurallarını kullanmaktır. Wp-admin dizininin kök dizinine bir .htaccess dosyası eklemeniz yeterli. Bu dosyayı ekledikten sonra, tüm IP adreslerini reddetmek ve yalnızca IP adresinize izin vermek için aşağıdaki kuralı eklemeniz yeterlidir:

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

WordPress kurulumunuza ek güvenlik katmanı eklemek amacıyla wp-admin'i yeniden adlandırmak istiyorsanız, Roots / Bedrock WordPress Boilerplate'i de deneyebilirsiniz . Web dışı dosyalara erişimi sınırlamak için web kökünün izole edilmesine yardımcı olabilir. Ayrıca, tüm WordPress çekirdeğini, wp-content / to app / / / / / / / / / ad komutları gibi yeniden adlandırmak gibi kendi alt dizinine yerleştirerek / güvenlik altına almanıza yardımcı olabilir:

  • Composer ile bağımlılık yönetimi
  • Ortama özel dosyalar içeren kolay WordPress yapılandırması
  • Dotenv ile ortam değişkenleri
  • Mu eklentileri için otomatik yükleyici (mu eklentileri olarak normal eklentiler kullanın)
  • Gelişmiş güvenlik (web kökü ayrılmış ve wp-password-bcrypt ile güvenli şifreler)

GitHub Repo'larını daha ayrıntılı bir kullanım için de kontrol edebilirsiniz :



0

Hayır, wp-admin klasörünü herhangi bir kısa kod veya htaccess hackiyle yeniden adlandırmak mümkün değildir,

Geçmişte, "wp-admin, wp-content ... etc" etiketi için Coda (kullandığım düzenleyici) üzerinden tam bir klasör araması yaparak bir müşteri için aynı şeyi yaptım ve "wp-" yi Dosyalar.

Bundan sonra onu kurabileceksiniz ancak:
Yüklemek istediğiniz eklentilerle aynı işlemi yapmanız gerekiyor, "wp-" etiketini yeni sürümlerden temizleyerek çekirdeği el ile güncellemelisiniz.

Size böyle bir şey yapmanızı önermediğim tüm yollarla, olduğu gibi bırakın ve kullanıcılarınıza / müşterilerinize daha iyi bir deneyim sunmak için bir Kullanıcı Girişi / Kayıt / Profil sayfasını uygulamaya çalışın.

Cozmolabs'dan Cristian, çok iyi bir rehber yazdı . Kodu biraz düzenleyebilir ve herhangi bir WordPress temasında çalıştırabilirsiniz.

Ayrıca bir ön formdan bir Posta formu ekleyebilir, böylece Yönetici ve bir gönderi yazmak için Yetenekleri Olan Kullanıcılar ön uçtan yapabilir.

Burada bir Frontend Post sayfasının nasıl oluşturulacağına dair bir örnek ve kod görebilirsiniz. Front-End Post Gönderme

Ayrıca, burada daha fazla işlevsellik ile aynı olan bazı güzel eklentilere göz atabilirsiniz .


0

IFRAME'DAN WP-ADMIN'DEN ÇALIŞMA HAKKINDA NE?

"Yönetici" adlı wp panosunda yeni bir sayfa yapın. örneğin: alan adınız / admin /

Aşağıdakileri kullanarak header.php page.phpve için veya / veya footer.phpşablonda olmayan şeyleri devre dışı bırakmak için bir vaka ifadesi yapabilirsiniz :

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

Bu hoş değil, ama bir ölçüde wp-admin'i url'den gizleyebilirsiniz. Başka bir yol, alan adı iletmeyi maske URL'si etkin durumdayken kullanmaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.