wp-admin 폴더의 이름을 바꿀 수 있습니까?


69

wp-admin 폴더의 이름을 바꿀 수 있습니까?

이름을 바꿀 수는 있지만 코드에서 지원하지 않으면 많은 것이 깨질 것입니다.

사용자 정의 폴더 이름을 사용하면 모호함과 보안으로 약간 더 안전합니다.

답변:


38

불행히도 현재 wp-hackers 목록 의이 최근 스레드trac 의이 티켓에서 볼 수있는 것처럼 수정으로 간주 할 수 없으며 그렇게 할 것 같지 않습니다 .

이것을 다시보고 싶다면 다음과 같이 제안합니다.

  1. wp-hackers에 귀하의 사례 제시 하되 귀하의 유스 케이스가 더 좋고 "모호함을 통한 보안"이 아니라면 위와 같이 격추 될 수 있음을 미리 양해하십시오.

  2. 같은 경고 로 트랙 티켓 에 당신의 주장을 제시하십시오 .

  3. 또한 원하는 기능을 가능하게 하는 패치 를 trac에 업로드 하십시오. 일이 이미 끝났을 때 거절하는 것은 훨씬 어렵습니다 (물론, 그들은 "예"라고 말하는 것보다 자주 "아니오"라고 말하는 것을 선호합니다.


10
+1 그들은 "예"그래서 미리 양해 말씀보다 그들이 더 자주 "NO"많은 말을하지를 선호합니까 :
Sisir

11

아니요, 폴더 이름을 바꿀 수 없습니다. 경로는 WordPress 소스 전체의 여러 위치에 하드 코딩되어 있습니다.

모호성을 통한 보안은 실제로 보안이 아닙니다.


21
그리고 매직 넘버 나 문자열을 하드 코딩하는 것과 같은 나쁜 프로그래밍 방식을 바꾸지 않는 것이 최선의 게으른 변명입니다.
hakre

6
@hakre +100 Btw, "wp- *"폴더를 숨기는 방법을 묻는 대부분의 사람들은 반드시 보안을 찾고 있지는 않지만 실제로 모호함을 찾고 있습니다. 그들은 사이트 분석에 더 많은 노력이 필요한 활동을 시도합니다.
Victor Farazdagi

3
실제로는 모호한 보안이 아닙니다. 유효한 보안 기술인 모호한 URL입니다. 자세한 내용은 아래 답변을 참조하십시오.
cmc

1
글쎄, 나는 새로운 인수 세트를 추적하려고 시도했지만 대답은 : "이것은 책에 의해 강력한 wontfix입니다"와 다소 snotty "gmail 로그인도 모호하지 않은 URL입니다". 기술적 인 이유도없고 설명도없고 토론도하지 않습니다.
cmc

1
워드 프레스는 Gmail보다 훨씬 더 유명합니다. 한 가지 이유는 워드 프레스가 오픈 소스이기 때문입니다. 누구나 코드를 알고 있습니다. 모호성을 통한 보안은 실제로 보안이 아닌가? 그러나 우리는 워드 프레스의 코더가 아닙니다. 오픈 소스입니다. 내 견해로는, 모호함은 보안을 유지하는 데 도움이됩니다. 사람들이 암호화 된 암호를 사용하는 이유이 논리에 따르면 암호화 암호를 사용하지 않습니다 .... 데이터베이스를 볼 수 있으면 해커가 할 수있는 일이 있습니다 ... 년 ... 그리고 내 6-7 Gmail 계정의 아무도는 ... 지금까지 15 년 해킹되지 않습니다
web2students.com

11

사람들은이 질문을 계속하지만 사람들은이 질문을 중복으로 표시합니다. 그러나 이것에 대한 선택된 답변은 실제로 질문에 대한 답변이 아닙니다.

워드 프레스 관리자의 이름을 바꾸려면 두 단계를 거쳐야합니다.

다음 코드에서는 대시 보드를 새 wp-admin의 이름으로 사용하고 있습니다. 아래 코드에서 대시 보드를 새 관리자 이름으로 변경하십시오.

먼저 wordpress에게 관리자 URL을 변경하고 싶다고 말해야합니다.

라인 2558에서 wp-includes / 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 를 변경하고 시작하기 전에 다음을 추가하십시오.

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

문제?

이 방법을 사용하여 1 년이 넘지 않았습니다. wp-admin은 여전히 ​​어떤 종류의 짜증나는 일을 할 것입니다. 그러나 그것은 무엇보다 예방책입니다. 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' );
    }
  }
}

클래스에 비슷한 접근법이 있습니다 : wordpress.stackexchange.com/a/7832/76440
majick

@makick에 대한 답변을 알려 주셔서 감사합니다. 훌륭한 답변이며 실제로 아이디어를 얻었지만 실제로 변경 사항이 적용되는 많은 경우에는 효과가 없었습니다. 내가 여전히 알아 내려고하는 한 가지는 URL에 수동으로 입력 된 모든 wp-admin 링크를 리디렉션하는 방법입니다. 나는 그것을 알아낼 수없는 것 같습니다. 기회가 생기면 site_url대신 필터를 사용하여 맨 아래로 업데이트 응답을 시도하십시오 admin_url. 꽤 잘 작동하는 것 같습니다.
브라이언 윌리스

9

WordPress에서 공식적으로 지원하는 방법은 다음과 같이 사이트를 루트에 유지하면서 WordPress 설치 파일을 하위 디렉토리로 이동하는 것입니다.

사이트 URL : http://my-blog.com

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

관리 URL을 자유롭게 변경할 수는 없지만 원하는 것을 접두어 로 붙일 수 있습니다. 이것은 보안 관점에서도 마찬가지입니다. 또한 모든 WordPress 설치 파일을 사용자에게 알려지지 않은 위치로 옮길 수 있다는 이점이 있으므로 모든 워드 프레스 강화 전략의 일부 여야합니다.

워드 프레스 코덱스 : 워드 프레스 자체 디렉토리 제공

또한이 보안 체계는 모호한 URL 이지만, 모호한 보안 과는 다릅니다 . 모호한 URL 은 암호만큼이나 완벽하게 유효한 보안 체계이며, 모호하지 않은 보안 은 입증되지 않은 비밀 절차를 사용합니다.

같은주의 사항이 암호와 마찬가지로하지만 적용과 같은 사용자 지정 폴더 뭔가를 호출 7nxnkkugrdzm하지 happy-snappy-admin. 또한 사용자가 관리자 URL이 비밀임을 알고 있어야합니다.


7

실제로 여기에 매우 좋은 튜토리얼이 있습니다.

소스 코드 미러 에서 WordPress 정보를 숨기는 방법

wp-content의 이름을 바꾸고 wp-admin의 이름을 바꾸고 WordPress에서 생성기 태그를 제거하는 방법이 포함되어 있습니다.

이 튜토리얼은 소스 코드에서 명백한 증거 또는 표시를 변경 하여 사이트에서 WordPress 정보를 효과적으로 제거합니다 .

폴더 이름, wp-admin 로그인 URL을 변경하는 방법과 사람들이 직접 갈 수 있도록 login.php가 기본 사이트로 리디렉션되는지 확인합니다.


6

가입자 레벨 사용자가 wp-admin 디렉토리를 보지 못하게하려면 독립 디렉토리에 로그인 / 등록 및 프로파일 / 편집 페이지의 독립형 버전을 자체 디렉토리에 작성할 수 있습니다. 그런 다음 htaccess 또는 IP 제한을 통해 관리 폴더를 보호 할 수 있습니다. (이를 수행하더라도 일부 플러그인은 AJAX 기능을 추가하는 데 사용하므로 admin-ajax 파일에 대한 예외를 설정해야합니다).

이 방법을 사용하면 원하는 "모호함"(실제로 많은 일을 수행하지는 않지만 종종 클라이언트와 관리자의 기분이 좋아지는)을 제공하고 관리자에 대한 액세스를 제한하여 실제 보안을 강화합니다. 솔직히 "/ login"이라는 URL은 "wp-login.php"보다 훨씬 멋지게 보입니다.

이로 인해 사이트가 방탄되지는 않습니다. 그러나 기본 개선이 훌륭합니다.


2

관리 제어판을 잠그는 한 가지 방법은 .htaccess 규칙을 사용하는 것입니다. wp-admin 디렉토리의 루트에 .htaccess 파일을 추가하십시오. 이 파일을 추가 한 후 다음 규칙을 추가하여 모든 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>

1

WordPress 설치에 추가 보안 계층을 추가하기 위해 wp-admin의 이름을 바꾸려면 Roots / Bedrock WordPress Boilerplate을 사용해보십시오 . 웹 루트가 아닌 파일에 대한 액세스를 제한하기 위해 웹 루트를 분리하는 데 도움이 될 수 있습니다. 또한 wp-content /의 이름을 app /로 바꾸는 것과 같은 자체 하위 디렉토리와 다음과 같은 추가 기능을 추가하여 전체 WordPress 코어를 구성 / 보안하는 데 도움이 될 수 있습니다.

  • Composer를 통한 종속성 관리
  • 환경 별 파일을 사용한 손쉬운 WordPress 구성
  • Dotenv를 사용한 환경 변수
  • Mu 플러그인 용 오토로더 (일반 플러그인을 mu 플러그인으로 사용)
  • 보안 강화 (wp-password-bcrypt를 사용하여 분리 된 웹 루트 및 보안 비밀번호)

자세한 사용법 은 GitHub Repo 를 확인할 수도 있습니다.


0

http://wordpress.org/extend/plugins/stealth-login/을 살펴보십시오 . 도움이 될 수 있습니다.


플러그인을 사용하려고 할 때 문제가있었습니다. 현재 WP 3.x와 호환되지 않거나 호환되지 않는 것 같습니다
Rarst

아 ... 나쁘다, 그것을 확인하지 않았다, 나는 몇 시간 전에 그것을 제거했다. 그러나 어쩌면 ... 어쩌면 누군가가 실제로 필요한 경우 문제를 해결할 수 있습니다.
edelwater


0

아니요 짧은 코드 나 htaccess 해킹으로 wp-admin 폴더의 이름을 바꿀 수 없습니다.

과거에는 태그 "wp-admin, wp-content ... etc"에 대해 Coda (내가 사용하는 편집기)를 통해 전체 폴더 검색을 수행하여 클라이언트에서 동일한 작업을 수행하고 "wp-"를 파일.

설치 후에는 설치할
수는 있지만 설치 하려는 플러그인과 동일한 작업을 수행해야합니다. 새 버전에서 "wp-"태그를 지워 코어를 수동으로 업데이트해야합니다.

모든 방법에서 나는 당신이 이런 식으로 할 것을 제안하지 않으며, 그대로두고 사용자 로그인 / 등록 / 프로필 페이지를 구현하여 사용자 / 고객에게 더 나은 경험을 제공하십시오.

Cozmolabs의 Cristian은 매우 훌륭한 자습서를 작성했습니다. 코드를 약간 편집하여 WordPress 테마에서 실행할 수 있습니다.

프런트 엔드에서 게시물 양식을 추가하여 게시물을 작성할 수있는 관리자 및 사용자가 프런트 엔드에서 양식을 작성할 수 있습니다.

여기에서는 프론트 엔드 게시물 페이지를 작성하는 방법에 대한 예제와 코드를 볼 수 있습니다. 프런트 엔드 포스트 제출

또한 더 많은 기능으로 동일하게 작동하는 멋진 플러그인을 살펴볼 수 있습니다 .


0

IFRAME에서 WP-ADMIN 작업은 어떻게됩니까?

wp 대시 보드에서 "Admin"이라는 새 페이지를 만듭니다. 예 : yourdomain / admin /

다음 을 사용 하여 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이 활성화 된 상태에서 도메인 전달을 사용하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.