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

  • 워드프레스 호스팅 RocketNet 가격·스펙 & Starter 플랜 $1

    워드프레스 호스팅 중 RocketNet은 속도와 안정성을 중시하는 개발자형 관리형 호스팅 서비스로, 캐시·보안·CDN 기능을 기본 제공하며 별도의 설정 없이 빠른 환경을 구축할 수 있습니다. 엔터프라이즈 호스팅을 제외한 관리형 호스팅 및 에이전시 호스팅은 첫 달 $1로 할인과 1년 결제 시에도 30일 환불 정책이 있기 때문에 가입 후 충분히 검토 후에 연장 여부를 검토할 수 있습니다….

  • WordPress Plugin: 정의와 역할 | 워드프레스 필수 플러그인 3가지 기준

    WordPress Plugin은 웹사이트에 다양한 기능을 추가할 수 있는 확장 도구입니다. 보안, 성능 최적화, SEO, 백업 등 핵심적인 기능 대부분이 플러그인을 통해 구현되며, 어떤 플러그인을 선택하고 조합하느냐에 따라 사이트의 완성도가 달라집니다. 이 페이지에서는 워드프레스 플러그인의 정의와 역할을 정리하고, 실제 운영에 꼭 필요한 7가지 필수 플러그인 요소를 소개합니다. 목차1️⃣ wp-config.php 파일이란?🔲 권한을 소유자에게만 설정🔲 .htaccess에서…

  • [WP] Wordfence Security Vs iThemes Security: 더 나은 선택은?

    워드프레스 CMS로 웹 사이트를 운영하면 보안은 필수 요소 중 하나입니다. 무차별 대입 공격이나 멀웨어에 감염되어 많은 시간 동안 사이트가 검색 엔진 순위 하락이 되는 불이익을 받을 경우를 만들어선 안 됩니다. Wordfence Security Vs iThemes Security 2개의 대표적인 보안 플러그인 비교를 시작해 보겠습니다. 목차1️⃣ wp-config.php 파일이란?🔲 권한을 소유자에게만 설정🔲 .htaccess에서 파일 접근 차단하기2️⃣ wp-config-sample.php3️⃣…

  • [워드프레스] 차일드 테마란? 만들어야 할까요? 그럼 어떻게?

    워드프레스 CMS를 사용하면 테마는 필수로 사용하게 됩니다. 워드프레스 차일드 테마는 운영하는 워드프레스 사이트에서 필수 요소인지 먼저 생각해 볼 필요가 있습니다. 목차1️⃣ wp-config.php 파일이란?🔲 권한을 소유자에게만 설정🔲 .htaccess에서 파일 접근 차단하기2️⃣ wp-config-sample.php3️⃣ 파일 편집 비활성화 1. 차일드 테마란? 차일드 테마(Child Theme)는 워드프레스 프레임워크의 주요 기능 중 하나입니다. 사용 중인 테마 파일의 수정(커스터마이징)이 필요할 때…

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

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

  • Clearfy Cache: 캐시 그 이상, 워드프레스 최적화에 중점을 둔 플러그인

    워드프레스 사이트의 속도가 느린 경우 캐시 플러그인 또는 최적화 플러그인을 고려할 수 있습니다. Clearfy Cache는 이름처럼 캐시 기능을 포함하고 있지만, 다른 캐시 플러그인과 비교하면 그 범위는 다소 제한적입니다. 따라서 Clearfy 는 최적화와 관리 보조 도구에 중점을 둔 플러그인으로 보는 것이 더 적절합니다. Clearfy는 기본적으로 간단한 캐싱 기능을 제공하지만, 자산 관리 기능을 통해 사용되지…

답글 남기기

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

Prove your humanity: 8   +   6   =