เป็นไปได้ไหมที่จะเปลี่ยนชื่อโฟลเดอร์ wp-admin
ฉันรู้ว่าฉันสามารถเปลี่ยนชื่อได้ แต่เว้นแต่จะได้รับการสนับสนุนจากสิ่งต่าง ๆ มากมายที่รหัสจะทำลาย
ถ้าฉันใช้ชื่อโฟลเดอร์ที่กำหนดเองมันจะทำให้ปลอดภัยขึ้นเล็กน้อยความปลอดภัยจากความสับสนและทั้งหมดนั้น
เป็นไปได้ไหมที่จะเปลี่ยนชื่อโฟลเดอร์ wp-admin
ฉันรู้ว่าฉันสามารถเปลี่ยนชื่อได้ แต่เว้นแต่จะได้รับการสนับสนุนจากสิ่งต่าง ๆ มากมายที่รหัสจะทำลาย
ถ้าฉันใช้ชื่อโฟลเดอร์ที่กำหนดเองมันจะทำให้ปลอดภัยขึ้นเล็กน้อยความปลอดภัยจากความสับสนและทั้งหมดนั้น
คำตอบ:
แต่น่าเสียดายที่มันไม่ได้ในขณะนี้เป็นไปได้หรือไม่ที่นั่นดูเหมือนจะเป็นจะต้องพิจารณาว่ามันเป็นการปรับเปลี่ยนที่คุณสามารถดูตามนี้กระทู้เมื่อเร็ว ๆ นี้ในรายการ WP-แฮกเกอร์และตั๋วนี้ Trac
หากคุณต้องการที่จะเห็นสิ่งนี้ถูกเยี่ยมชมอีกครั้งฉันขอแนะนำ:
นำเสนอกรณีของคุณเกี่ยวกับ wp-hackerแต่จะได้รับการแจ้งล่วงหน้าเกี่ยวกับกรณีการใช้งานของคุณให้ดีขึ้นและจะไม่ "รักษาความปลอดภัยผ่านความสับสน" มิเช่นนั้นจะถูกยิงดังที่กล่าวมา
แสดงการโต้แย้งของคุณในตั๋ว tracด้วยคำเตือนเดียวกัน
ยิ่งไปกว่านั้นอัปโหลดแพตช์ไปยังแทร็คที่เปิดใช้งานฟังก์ชั่นที่คุณต้องการ มันยากที่จะบอกว่าไม่เมื่องานเสร็จแล้ว (แต่แน่นอนพวกเขาชอบพูดว่า "ไม่" บ่อยกว่าที่พวกเขาพูดว่า "ใช่" ดังนั้นจึงได้รับการเตือนล่วงหน้า)
ไม่คุณไม่สามารถเปลี่ยนชื่อโฟลเดอร์ได้ เส้นทางนั้นกำหนดค่าตายตัวในหลายตำแหน่งตลอดทั้งแหล่งที่มาของ WordPress
การรักษาความปลอดภัยผ่านความสับสนไม่ได้รักษาความปลอดภัยจริงๆ
ผู้คนถามคำถามนี้ต่อไป แต่ผู้คนยังคงทำเครื่องหมายว่าซ้ำกัน คำตอบที่เลือกสำหรับสิ่งนี้ แต่จริงๆแล้วไม่ใช่คำตอบของคำถาม
ในการเปลี่ยนชื่อผู้ดูแลระบบ WordPress คุณต้องดำเนินการสองขั้นตอน
ในรหัสต่อไปนี้ฉันใช้แดชบอร์ดเป็นชื่อของ wp-admin ใหม่ของฉัน เปลี่ยนแดชบอร์ดในรหัสด้านล่างเป็นสิ่งที่คุณต้องการตั้งชื่อผู้ดูแลระบบใหม่ของคุณ
ก่อนอื่นคุณต้องบอก wordpress ว่าคุณต้องการเปลี่ยน url ของผู้ดูแลระบบหรือไม่
ในบรรทัด 2558 wp-include / link-template.phpคือรหัสที่กำจัด URL ของผู้ดูแลระบบ
การใช้admin_url
ตัวกรองคุณสามารถเปลี่ยน URL ของผู้ดูแลระบบด้วยฟังก์ชันต่อไปนี้:
function my_custom_admin_url($path) {
return str_replace('wp-admin', 'dashboard', $path);
}
add_filter('admin_url', 'my_custom_admin_url');
คุณสามารถทดสอบเพื่อดูว่า URL ใหม่ของคุณคืออะไรโดยทำดังนี้
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' );
อย่างไรก็ตามหากคุณสังเกตเห็นเมื่อคลิกผ่านผู้ดูแลระบบว่าไม่ใช่ทุกอย่างที่ใช้งานได้และบางลิงค์อาจให้ 404 ไม่พบหรือคล้ายกัน
ประการที่สองเปลี่ยน. htaccessในไดเรกทอรีรากของ wordpress และเพิ่มสิ่งต่อไปนี้ในจุดเริ่มต้นก่อนสิ่งอื่น
#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
ตอนนี้ฉันไม่ใช่ผู้เชี่ยวชาญเมื่อพูดถึงการแก้ไข. htaccess ดังนั้นสิ่งนี้อาจไม่จำเป็น อย่างไรก็ตามฉันไม่เคยพบว่ามันใช้งานไม่ได้
นี่คือสิ่งทั้งหมด สร้างไฟล์และวางในโฟลเดอร์ปลั๊กอินของคุณหรือโฟลเดอร์ mu-plugins (อย่าลืมเปลี่ยนทุกแดชบอร์ดเป็น url ผู้ดูแลระบบที่คุณต้องการ)
<?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');
ปัญหา?
ฉันไม่ได้ใช้วิธีนี้มานานกว่าหนึ่งปี คุณอาจสังเกตเห็นว่าผู้ดูแลระบบ wp จะยังคงใช้งานได้ดี แต่มันเป็นข้อควรระวังมากกว่าสิ่งใด ฉันมีปลั๊กอินที่เขียนไม่ดีที่ hardcoded wp-admin ในบางแห่งที่จะไม่โหลดเมื่อพยายามบล็อกหรือเปลี่ยนเส้นทาง wp-admin ฉันแน่ใจว่ามีวิธีการทำเช่นนี้กับ htaccess แต่ฉันไม่สามารถหาคำตอบได้สำเร็จ นอกจากนี้สิ่งนี้ยังไม่ได้รับการทดสอบบนเว็บไซต์หลายรายการหรืออะไรทำนองนั้น
นี่คล้ายกันมาก แต่ด้วยเหตุผลบางอย่างคำตอบข้างต้นของฉันไม่สามารถใช้ได้กับทุกโฮสต์ที่ฉันลอง
เพิ่ม .htaccess
RewriteRule ^admin/(.*) wp-admin/$1?%{QUERY_STRING} [L]
สร้างไฟล์ในโฟลเดอร์ mu-plugins ชื่อnew-admin.php
และเพิ่มที่นี่:
<?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);
}
หมายเหตุ:วิธีการนี้ดูเหมือนจะทำงานได้ดีขึ้นในบางโฮสต์ แต่ก็ยังมีปัญหาในการไม่เปลี่ยนเส้นทางลิงก์ผู้ดูแล wp-admin ไปยัง URL ผู้ดูแลระบบใหม่ นี่เป็นวิธีที่ฉันลองด้านล่าง ในขณะที่ด้านล่างนี้ใช้งานไม่ได้ฉันคิดว่ามันถูกต้อง ฉันไม่แน่ใจว่าเบ็ดอะไรที่จะใช้ htaccess อาจเป็นทางเลือกที่ดีกว่า แต่ฉันก็ยังได้รับการเปลี่ยนเส้นทางลูปเมื่อฉันพยายามอย่างนั้น
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' );
}
}
}
site_url
admin_url
ดูเหมือนว่าจะทำงานได้ดี
แนวทางที่ได้รับการสนับสนุนอย่างเป็นทางการจาก WordPress คือการย้ายไฟล์ติดตั้ง WordPress ไปยังไดเรกทอรีย่อยในขณะที่ทำให้ไซต์อยู่ในรูทเช่น:
URL ไซต์: http://my-blog.com
URL ผู้ดูแลระบบ: http://my-blog.com/7nxnkkugrdzm/wp-admin
แม้ว่าสิ่งนี้จะไม่ให้อิสระอย่างเต็มที่ในการเปลี่ยน URL ผู้ดูแลระบบของคุณ แต่ก็หมายความว่าคุณสามารถใช้คำนำหน้ากับทุกสิ่งที่คุณต้องการ นี่เป็นสิ่งที่ดีจากมุมมองด้านความปลอดภัย นอกจากนี้ยังมีประโยชน์ในการย้ายไฟล์การติดตั้ง WordPress ทั้งหมดไปยังตำแหน่งที่ผู้ใช้ไม่รู้จักดังนั้นจึงควรเป็นส่วนหนึ่งของกลยุทธ์การทำให้แข็งตัวของ WordPress
จาก WordPress Codex: การให้ WordPress เป็นไดเรกทอรีของตัวเอง
นอกจากนี้โปรดทราบว่าในขณะที่การรักษาความปลอดภัยรูปแบบนี้จะเรียกว่าURL ที่ชัดเจนก็ไม่ได้เป็นสิ่งเดียวกับการรักษาความปลอดภัยจากความสับสน URL ที่คลุมเครือเป็นรูปแบบการรักษาความปลอดภัยที่สมบูรณ์แบบที่ดีพอ ๆ กับรหัสผ่านในขณะที่การรักษาความปลอดภัยโดยความสับสนนั้นต้องอาศัยการใช้ขั้นตอนลับที่ไม่ได้รับการพิสูจน์
caveats เดียวกันใช้แม้ในขณะที่มีรหัสผ่าน: เรียกสิ่งที่โฟลเดอร์ที่กำหนดเองเช่นไม่7nxnkkugrdzm
happy-snappy-admin
นอกจากนี้ตรวจสอบให้แน่ใจว่าผู้ใช้ของคุณทราบ URL ของผู้ดูแลระบบเป็นความลับ
จริงๆแล้วมันมีบทช่วยสอนที่ดีมากที่นี่:
วิธีการซ่อนข้อมูล WordPress จาก มิเรอร์ซอร์สโค้ดของคุณ
รวมถึงวิธีการเปลี่ยนชื่อ wp-content เปลี่ยนชื่อ wp-admin และลบ tag ตัวสร้างออกจาก WordPress
กวดวิชานี้จะมีการเปลี่ยนแปลงที่เห็นได้ชัดหลักฐานหรือข้อบ่งชี้ในซอร์สโค้ดของคุณได้อย่างมีประสิทธิภาพลบข้อมูล WordPress จากเว็บไซต์ของคุณ
มันอธิบายถึงวิธีการเปลี่ยนชื่อโฟลเดอร์ URL ล็อกอินของ wp-admin และตรวจสอบให้แน่ใจว่า login.php เปลี่ยนเส้นทางไปยังเว็บไซต์หลักเพื่อให้ผู้คนสามารถไปที่นั่นได้โดยตรง
หากคุณต้องการป้องกันไม่ให้ผู้ใช้ระดับสมาชิกเห็นไดเรกทอรี wp-admin คุณสามารถสร้างหน้าล็อกอิน / การลงทะเบียนและหน้าโปรไฟล์ / แก้ไขแบบสแตนด์อโลนในไดเรกทอรีของตนเอง จากนั้นคุณสามารถปกป้องโฟลเดอร์ผู้ดูแลระบบของคุณผ่านข้อ จำกัด ของ htaccess หรือ IP (แม้ว่าคุณจะทำสิ่งนี้คุณควรสร้างข้อยกเว้นสำหรับไฟล์ admin-ajax เนื่องจากปลั๊กอินบางตัวใช้เพื่อเพิ่มฟังก์ชั่น AJAX)
วิธีการนี้ให้ "ความสับสน" ที่คุณต้องการ (ซึ่งไม่ได้ทำอะไรมาก แต่มักทำให้ลูกค้าและผู้จัดการรู้สึกดีขึ้น) และเพิ่มความปลอดภัยที่แท้จริงด้วยการ จำกัด การเข้าถึงผู้ดูแลระบบ ยิ่งไปกว่านั้น URL ที่เพิ่งจะพูดว่า "/ login" นั้นดูดีกว่า "wp-login.php"
มันควรจะไปโดยไม่บอกว่านี่จะไม่ทำให้เว็บไซต์ของคุณเป็นกระสุน แต่มันเป็นการปรับปรุงขั้นพื้นฐานที่ดี
วิธีหนึ่งในการล็อคแผงควบคุมการดูแลระบบคือการใช้กฎ. htaccess เพียงเพิ่มไฟล์. htaccess ไปที่รูทของไดเรกทอรี wp-admin หลังจากคุณเพิ่มไฟล์นี้เพียงเพิ่มกฎต่อไปนี้เพื่อปฏิเสธที่อยู่ IP ทั้งหมดและอนุญาตเฉพาะ 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>
หากคุณต้องการเปลี่ยนชื่อ wp-admin โดยมีจุดประสงค์ในการเพิ่มเลเยอร์ความปลอดภัยเพิ่มเติมให้กับการติดตั้ง WordPress ของคุณคุณยังสามารถลองใช้Bootsplate รูท /เบดร็อก มันสามารถช่วยแยกเว็บรูทเพื่อ จำกัด การเข้าถึงไฟล์ที่ไม่ใช่เว็บ นอกจากนี้ยังสามารถช่วยในการจัดระเบียบ / รักษาความปลอดภัยทั้ง WordPress หลักโดยวางไว้ในไดเรกทอรีย่อยของตัวเองเช่นการเปลี่ยนชื่อ wp-content / เป็น app / เช่นเดียวกับคุณสมบัติเพิ่มเติมเหล่านี้:
คุณสามารถตรวจสอบGitHub Repoของพวกเขาสำหรับการใช้งานรายละเอียดเพิ่มเติม:
ลองดูที่http://wordpress.org/extend/plugins/stealth-login/สิ่งนี้อาจช่วยคุณได้
ไม่ไม่สามารถเปลี่ยนชื่อโฟลเดอร์ wp-admin ด้วยรหัสสั้น ๆ หรือแฮ็ค htaccess
ในอดีตฉันทำเช่นเดียวกันสำหรับลูกค้าโดยทำการค้นหาโฟลเดอร์ทั้งหมดผ่าน Coda (ตัวแก้ไข i ใช้) สำหรับแท็ก "wp-admin, wp-content ... etc" และฉันลบ "wp-" ออกจาก ไฟล์
หลังจากนั้นคุณจะสามารถติดตั้งได้ แต่:
คุณต้องทำเช่นเดียวกันกับปลั๊กอินที่คุณต้องการติดตั้งคุณต้องอัปเดตคอร์ด้วยตนเองโดยการล้างแท็ก "wp-" จากเวอร์ชันใหม่
ในทุกวิธีที่ฉันไม่แนะนำให้คุณทำสิ่งนี้ปล่อยให้มันเป็นและพยายามที่จะใช้หน้าเข้าสู่ระบบผู้ใช้ / ลงทะเบียน / โปรไฟล์เพื่อให้ผู้ใช้ / ลูกค้าของคุณมีประสบการณ์ที่ดีขึ้น
Cristian จากCozmolabsได้เขียนบทแนะนำที่ดีมาก คุณสามารถแก้ไขรหัสเล็กน้อยและทำให้มันทำงานในรูปแบบใด ๆ ของ WordPress
คุณยังสามารถเพิ่มแบบฟอร์มการโพสต์จากส่วนหน้าเพื่อให้ผู้ดูแลระบบและผู้ใช้ที่มีความสามารถในการเขียนโพสต์สามารถทำได้จากส่วนหน้า
ที่นี่คุณสามารถดูตัวอย่างและรหัสเกี่ยวกับวิธีสร้างหน้าโพสต์ส่วนหน้า การโพสต์ส่วนหน้า
นอกจากนี้คุณสามารถดูปลั๊กอินที่ดีที่นี่ที่ทำเช่นเดียวกันกับการทำงานที่มากขึ้น
เกี่ยวกับการทำงาน WP-ADMIN จาก IFRAME
สร้างหน้าใหม่ในแผงควบคุม wp ชื่อ "ผู้ดูแลระบบ" เช่น yourdomain / admin /
คุณสามารถสร้างคำสั่ง case ด้วยการheader.php
page.php
และ / หรือfooter.php
ปิดการใช้งานสิ่งต่างๆบนเทมเพลตที่ไม่จำเป็นโดยใช้:
<?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;
นี่ไม่สวย แต่อย่างน้อยคุณสามารถซ่อน wp-admin จาก url ได้ อีกวิธีหนึ่งคืออาจใช้การส่งต่อโดเมนเมื่อเปิดใช้งานมาสก์ URL
+1
พวกเขาจะมีการตั้งค่าสำหรับการพูดว่า "ไม่" มากมักจะมากขึ้นกว่าที่พวกเขาพูดว่า "ใช่" จึงได้เตือน :)