wp-config.php 보안 취약점: 워드프레스 보안 강화

워드프레스 설치 후 반드시 확인해야 할 파일 중 하나가 바로 wp-config.php입니다.

이 파일은 데이터베이스 접속 정보와 보안 키 등이 포함된 핵심 설정 파일로, 외부에 노출되거나 잘못 설정될 경우 사이트 전체가 심각한 위협에 노출될 수 있습니다.

이번 페이지에서는 wp-config.php의 주요 보안 취약점과 이를 안전하게 보호하기 위한 점검 방법을 자세히 알아보겠습니다.

1️⃣ wp-config.php 파일이란?

wp-config.php는 워드프레스의 핵심 설정 파일로, 사이트의 데이터베이스 접속 정보, 보안 키, 디버그 설정, 테이블 접두사 등의 중요한 정보가 담겨 있습니다.

워드프레스 wp-config.php 파일

워드프레스가 제대로 작동하기 위해 반드시 필요한 파일이며, 이 파일이 외부에 노출될 경우 데이터베이스 정보 유출, 관리자 권한 탈취, 워드프레스 내부 구조 파악, 보안 키를 이용한 세션 위조 등 심각한 보안 위협으로 이어질 수 있습니다.

🔲 권한을 소유자에게만 설정

워드프레스에서는 일반적으로 폴더는 755, 파일은 644 권한으로 설정합니다. 하지만 wp-config.php는 중요한 설정 정보가 포함된 파일이므로, 파일 권한을 600으로 설정해 소유자(testpilotweb)만 접근할 수 있도록 제한합니다.

600 권한으로 설정하면 외부 사용자나 다른 프로세스로부터의 접근을 차단할 수 있어 보안에 효과적입니다.

이러한 권한 설정은 서버에 직접 접근하여 변경하거나, 사용하는 호스팅 업체의 안내에 따라 FTP 또는 Cpanel을 통해 설정할 수 있습니다.

필요할 경우, 고객센터를 통해 권한 설정 방법에 대해 문의하는 것도 좋은 방법입니다.

🔲 .htaccess에서 파일 접근 차단하기

wp-config.php 파일에 권한 설정이 공유 호스팅이거나 다른 이유로 어려운 경우 .htaccess 파일에서 접근 차단 설정을 할 수 있습니다.

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

2️⃣ wp-config-sample.php

워드프레스 기본 설치 파일 중 하나인 wp-config-sample.php는 wp-config.php 파일의 예시 템플릿입니다.

워드프레스를 처음 설치할 때 이 샘플 파일을 복사하여 wp-config.php로 이름을 바꾸고, 데이터베이스 정보 등을 입력한 후 설치를 진행합니다.

일단 설치가 완료되면 wp-config-sample.php 파일은 필요하지 않으며, 보안상 삭제해도 무방합니다.

이 파일 자체에는 민감한 정보가 들어 있지 않지만, 공격자가 기본 경로를 통해 접근을 시도할 가능성을 줄이기 위해 제거하는 것이 좋습니다.

 www]# cat wp-config-sample.php 
<?php
/**
 * The base configuration for WordPress
 *
 * The wp-config.php creation script uses this file during the installation.
 * You don't have to use the website, you can copy this file to "wp-config.php"
 * and fill in the values.
 *
 * This file contains the following configurations:
 *
 * * Database settings
 * * Secret keys
 * * Database table prefix
 * * ABSPATH
 *
 * @link https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
 *
 * @package WordPress
 */

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** Database username */
define( 'DB_USER', 'username_here' );

/** Database password */
define( 'DB_PASSWORD', 'password_here' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

/**#@+
 * Authentication unique keys and salts.
 *
 * Change these to different unique phrases! You can generate these using
 * the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
 *
 * You can change these at any point in time to invalidate all existing cookies.
 * This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

/**#@-*/

/**
 * WordPress database table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 *
 * At the installation time, database tables are created with the specified prefix.
 * Changing this value after WordPress is installed will make your site think
 * it has not been installed.
 *
 * @link https://developer.wordpress.org/advanced-administration/wordpress/wp-config/#table-prefix
 */
$table_prefix = 'wp_';

/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.
 *
 * For information on other constants that can be used for debugging,
 * visit the documentation.
 *
 * @link https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
 */
define( 'WP_DEBUG', false );

/* Add any custom values between this line and the "stop editing" line. */



/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', __DIR__ . '/' );
}

/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';

3️⃣ 파일 편집 비활성화

워드프레스 대시보드 내 ‘테마 편집기’‘플러그인 편집기’ 메뉴를 비활성화합니다. 공격자가 관리자 권한을 탈취하더라도 웹을 통해 악성 코드를 삽입하는 것을 막는 가장 강력한 방어책 중 하나입니다.

define('DISALLOW_FILE_EDIT', true);	
WordPress Box

Similar Posts

  • BackWPup Plugin 설치 및 설정

    BackWPup 플러그인은 인기 있는 워드프레스 백업 및 복원 플러그인 중 하나입니다. 프리 버전에서 50만 명 이상의 활성 설치와 지속적인 업데이트를 통해 안정성과 기능 향상이 이루어지고 있습니다. 이 페이지에서는 BackWPup 플러그인 설치 후 기본 설정 방법에 대해 알아 보겠습니다. 목차1️⃣ wp-config.php 파일이란?🔲 권한을 소유자에게만 설정🔲 .htaccess에서 파일 접근 차단하기2️⃣ wp-config-sample.php3️⃣ 파일 편집 비활성화1️⃣ BackWPup…

  • 워드프레스 테마: 용도와 기능으로 보는 테마 선택 기준

    웹사이트를 구축하기 위해 원하는 서비스에 맞는 호스팅 서버까지 구매한 후에 워드프레스를 설치했습니다. 기본 테마로 내 웹사이트를 꾸미는 경우는 거의 없습니다. 워드프레스 테마는 웹사이트의 외형과 기능을 결정하는 핵심 요소입니다. 사이트 운영 목적에 따라 테마 선택 기준도 달라집니다. 예를 들어, 블로그, 포트폴리오, 쇼핑몰 등 목적에 맞는 적절한 레이아웃과 기능이 필요합니다. 테마는 단순한 디자인뿐만 아니라 페이지…

  • [WP] 워드프레스 글 ID 및 카테고리 ID 확인 방법

    워드프레스 사이트를 관리할 때 글 ID를 확인해야 하는 경우가 있습니다. 작업 도중 워드프레스 글 ID는 좌측 하단에서 확인할 수 있습니다. 워드프레스 카테고리 ID 역시 카테고리 페이지에서 동일한 방법으로 확인할 수 있습니다. 메모장에 글 ID를 좀 더 큰 글자로 쉽게 확인하는 방법입니다. 목차1️⃣ wp-config.php 파일이란?🔲 권한을 소유자에게만 설정🔲 .htaccess에서 파일 접근 차단하기2️⃣ wp-config-sample.php3️⃣ 파일…

  • [SEO] 2023년에 워드프레스 전자책 및 SEO 전자책과 강의를 구매하면 안되는 이유

    2023년 티스토리의 운영 정책이 블로거들에게 안 좋은 방향으로 바뀌면서 많은 블로거들이 워드프레스 CMS 또는 구글블로거로 이전하는 경우가 많아졌다. 그동안 미뤄 왔던 워드프레스 사이트의 검색엔진최적화를 진행하게 되면서 SEO 전자책이 해외에는 있지만 국내에는 없기에 나와 있는 책을 우연히 구매하게 되었다. 구매한 SEO E북은 말도 안 될 정도로 빈약한 구성을 가진 걸 보고 놀랐다. 이런 높은…

  • wp-config.php 기본 설정

    wp-config.php 파일은 워드프레스 웹 사이트의 가장 중요한 설정 파일입니다. 이 파일은 워드프레스가 데이터베이스에 접속하고 작동하는 데 필요한 핵심 정보를 담고 있기 때문에, 사이트의 심장부와 같습니다. 목차1️⃣ wp-config.php 파일이란?🔲 권한을 소유자에게만 설정🔲 .htaccess에서 파일 접근 차단하기2️⃣ wp-config-sample.php3️⃣ 파일 편집 비활성화 Ⅰ. wp-config.php의 역할 이 파일에는 다음과 같은 민감한 설정이 포함되어 있습니다. 이러한 특성 때문에…

  • [WP] 워드프레스 글 페이지 차이

    워드프레스를 처음 후 운영하게 되면 글(Post)과 페이지(Page) 차이가 어려워 혼동을 겪는 경우가 많습니다. 워드프레스 글 페이지 차이가 무엇인지 명확히 알아 보도록 하겠습니다. 워드프레스 포스트(글)은 워드프레스에서 제공하는 가장 기본적인 글 형식입니다. 동적인 콘텐츠이며 반대로 페이지는 정적인 콘텐츠입니다. 목차1️⃣ wp-config.php 파일이란?🔲 권한을 소유자에게만 설정🔲 .htaccess에서 파일 접근 차단하기2️⃣ wp-config-sample.php3️⃣ 파일 편집 비활성화1. 워드프레스 글(Post) 조금…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 3   +   4   =