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.
Maalesef şu anda mümkün değil ve bunun wp-bilgisayar korsanları listesindeki son konu ve trac'teki bu bilet tarafından görebileceğiniz gibi bir değişiklik olarak kabul edilebileceği görülüyor.
Bunun tekrar gözden geçirilmesini gerçekten görmek istersen şunu öneririm:
Davanızı tanıtın wp-hacker'larda ama kullanım durumunuz için önceden uyarılmış olsanız iyi olur ve "belirsizlik yoluyla güvenlik" olmasa iyi olur ya da yukarıdaki gibi düşürülecek.
Argümanınızı aynı uyarılarla bir trac bilet içinde sunun.
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.)
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.
İ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 tablosunu kullanıyorum. Aşağıdaki koddaki gösterge tablosunu yeni yöneticinize adlandırmak istediğiniz şekilde değiştirin.
İlk önce wordpress'e yönetici url'sini değiştirmek istediğinizi söylemelisiniz.
2558 satırında wp-include/link-template.php , yönetici URL'sini dertermines yapan koddur.
admin_url
filtresini kullanarak, admin'in 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.
İkincisi, wordpress kök dizininizdeki .htaccess kodunu 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 bunlardan 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');
Sorun mu?
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.
Bu oldukça benzer, ancak nedense yukarıdaki cevabım denediğim her Sunucuda işe yaramadı.
.htaccess
'a ekle
RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]
new-admin.php
adlı mu-plugins klasöründe bir dosya oluşturun ve buraya 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 aşağıda işe yaramazbence 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' );
}
}
}
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ştirme konusunda size tam bir özgürlük vermese de, prefix ile istediğiniz bir şey yapabileceğ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ına Gizli URL adı verilirken, bunun belirsizliğe göre güvenlik ile aynı olmadığını unutmayın. Gizli URL, bir şifre kadar iyi olan mükemmel bir geçerli güvenlik şemasıdır, belirsizliğe göre güvenlik gizli kanıtlanmamış prosedürleri kullanmaya dayanır.
Aynı uyarılar parolalarda olduğu gibi uygulanır: Özel klasöre 7nxnkkugrdzm
değil, happy-snappy-admin
gibi bir şey çağırın. Ayrıca, kullanıcılarınızın yönetici URL'sinin bir sır olduğunu bildiğinden emin olun.
Bu konuda gerçekten çok iyi bir eğitim var:
WordPress Bilgilerini Kaynak Kodunuzdan Nasıl Gizleyebilirsiniz? ayna
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ğitimde, kaynak kodunuzdaki açık kanıt veya göstergeler değişecek, WordPress bilgilerini sitenizden etkin bir şekilde kaldırma .
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.
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, admin-ajax dosyası için bir istisna yapmalısınız, çünkü bazı eklentiler onu um, AJAX işlevselliği eklemek için kullanırlar).
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 hissetmesini sağlar) 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 hoş görünüyor.
Bunun sitenizi kurşun geçirmez yapmadığını söylemeden geçmesi gerekir. Ama bu Güzel, temel bir geliştirme.
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>
WordPress kurulumunuza ek güvenlik katmanı eklemek amacıyla wp-admin'i yeniden adlandırmak istiyorsanız, Roots/Bedrock WordPress Boilerplate komutunu 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 organize etmek/güvenceye almak için wp-content/to app///ve/veya bu ek özellikleri yeniden adlandırmak gibi kendi alt dizinine yerleştirerek yardımcı olabilir:
Daha ayrıntılı bir kullanım için GitHub Repo seçeneklerini de kontrol edebilirsiniz:
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 /
Şablonda gerekli olmayan şeyleri devre dışı bırakmak için header.php
page.php
ve/veya footer.php
ile 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 en azından bir dereceye kadar wp-admin'i url'den gizleyebilirsiniz. Başka bir yol, alan adı iletmeyi maske URL'si etkin durumdayken kullanmaktır.
http://wordpress.org/extend/plugins/stealth-login/ 'a göz atın, bu size yardımcı olabilir.
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 editör) üzerinden tam bir klasör araması yaparak bir müşteri için aynı şeyi yaptım ve "wp-" yi Dosyalar.
Bundan sonra yüklemek mümkün olacak ama:
Kurmak istediğiniz eklentilerle aynı şeyi yapmalısınız, "wp-" etiketini yeni sürümlerden temizleyerek çekirdeği elle 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 Kullanıcı Girişi/Kayıt/Profil sayfasını uygulamaya çalışın.
Cristian Cozmolabs çok iyi bir rehber yazmış. Kodu biraz düzenleyebilir ve herhangi bir WordPress temasında çalışmasını sağlayabilirsiniz.
Ayrıca bir ön formdan bir Mesaj formu ekleyebilir, böylece Yönetici ve bir gönderi yazma Yeteneklerine sahip 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. Ön Uç Sonrası Gönderimi
Ayrıca bazı Nice eklentilerine buradan bakabilirsiniz daha fazla işlevsellik ile aynı şeyi yapar.