워드프레스 사용자라면 누구나 알고 있는 폴더 구조와 파일 이름입니다. 보안상의 이유로 이를 옮기거나 이름 변경하는 몇가지 방법을 공유합니다.

wp-folder

1. wp-config.php 파일 이동

wp-config.php 파일에는 Mysql database, Secretkey, table_prefix 등 보안과 직결되는 내용이 있습니다. 보안상 이를 숨기고 싶다면 다음의 방법을 사용할 수 있습니다.

(1) wp-config.php 파일을 워드프레스가 설치된 한 단계 위의 폴더로 이동.

워드프레스는 실행하면서 자동으로 한 단계 위의 폴더를 스캔하여 wp-config.php 파일이 있는지 확인합니다. wp-config.php 파일을 이동하여도 사이트는 정상으로 작동합니다.

(2) 만약, 한 단계 위의 폴더가 아닌 곳에  파일 이름마저 바꾸고 싶다면….

  1. wp-config.php 파일을 원하는 위치에 원하는 파일명으로 옮깁니다.
  2. 원래 위치에 wp-config.php을 새로 만들고
  3. 다음의 코드를 작성합니다. (2단계 폴더 위에 my-config.php 파일로 옮긴 예)
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . '../../my-config.php');

요약하면, 핵심 정보를 다른 위치의 다른 파일에 넣고, 그 파일 위치를 새 wp-config.php에 알려주는 것입니다.

 

2. wp-config.php 파일의 접근 제한

.htaccess 파일에 아래의 코드를 추가하여 wp-config.php 파일을 보호합니다. 위의 방법으로 wp-config.php 파일의 위치 또는 이름을 변경했다면 그것도 함께 추가하는 것이 좋습니다.

<files wp-config.php>
order allow,deny
deny from all
</files>

 

3. wp-content 폴더 이동

방법은 위와 비슷합니다. 아래는 wp-content 폴더를 assets로 변경한 경우의 예시입니다.

define ('WP_CONTENT_FOLDERNAME', 'assets');
define( 'WP_CONTENT_DIR', ABSPATH . 'assets' );
define( 'WP_CONTENT_URL', 'http://' . $_SERVER['HTTP_HOST'] . '/assets' );

같은 방법으로 plugins 폴더, themes 폴더, uploads 폴더의 위치를 원하는 곳으로 옮길 수 있습니다.  관련된 다양한 사례는 Codex를 참고하십시오.

주의! 만약, wordpress codex를 지키지 않고 하드코딩한 플러그인이나 테마를 사용한다면 당연히 작동하지 않습니다. 심지어 어떤 테마의 경우는 table_prefix를 _wp라고 가정하고 만들어진  경우도 보았습니다.

 

4. wp-includes 폴더 보안

.htaccess 파일을 수정합니다. codex 참고하여 주세요.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

 

5. 내장 에디터 사용 제한

wp-config.php 파일에 아래를 추가하여 워드프레스 내장 Editor 사용을 불가하게 합니다.

define('DISALLOW_FILE_EDIT', true);