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

  • cPanel 워드프레스 설치하기(with softaculous)

    cPanel은 워드프레스 뿐만 아니라 여러 CMS에서 사용하기 편리한 웹 호스팅 컨트롤 패널입니다. 이번에 cPanel 워드프레스 설치 방법에 대해 알아 보겠습니다. 기본 설치를 위해 먼저 [cPanel] > [소프트웨어] > [Softaculous]를 클릭합니다. cPanel을 사용하는 호스팅 업체라면 동일한 설정이 있기 때문에 내용 참조하여 어렵지 않게 설치가 가능합니다. 목차1️⃣ wp-config.php 파일이란?🔲 권한을 소유자에게만 설정🔲 .htaccess에서 파일 접근…

  • WooCommerce 설치 및 설정 | 전자상거래는 워드프레스 우커머스 플러그인으로 시작하는 이유

    WooCommerce는 워드프레스 전용 전자상거래 플랫폼입니다. 워드프레스 CMS는 상상하는 모든 사이트를 만들 수 있으며 그 중에 전자상거래 웹사이트가 하나입니다. 전자상거래 플랫폼으로 Woocommerce vs Shopify 로 비교하면 WooCommerce에 손을 들어주고 싶습니다. 왜냐하면 워드프레스 블로그를 운영하면서 검색 엔진 최적화 플러그인을 사용할 수 있기 때문입니다. “WooCommerce”라는 이름은 기대감과 즐거움을 상징하는 감탄사 “Woo”와, 상거래를 뜻하는 “Commerce”의 합성어입니다. 즉,…

  • 워드프레스 고유주소(Permalink)와 슬러그

    워드프레스 고유주소(Permalink, 영구링크, 고유링크 등)는 도메인 뒤에 붙는 게시물이나 페이지의 전체 URL 주소를 제공합니다. 특정 콘텐츠에 엑세스하는 데 사용되는 Permalink는 워드프레스 콘텐츠의 영구적인 주소로써 URL이 필요한 모든 워드프레스 콘텐츠에 사용됩니다. 목차1️⃣ wp-config.php 파일이란?🔲 권한을 소유자에게만 설정🔲 .htaccess에서 파일 접근 차단하기2️⃣ wp-config-sample.php3️⃣ 파일 편집 비활성화 워드프레스 고유주소 일반설정을 사용하면 안되는 이유 워드프레스를 처음 설치하고…

  • [WP] 워드프레스 vs 티스토리 더 나은 선택은?

    수익형 블로그라서 해서 한국에서는 티스토리를 많이 이용하고 있습니다. 티스토리의 가장 큰 장점은 구글 애드센스 광고를 블로그에 게재해서 수익을 올릴 수 있다는 장점이 있습니다. 하지만 티스토리 블로그는 너무 많은 문제를 가지고 있습니다. 앞으로도 절대 해결되지 않을 것이 99% 이상 기정 사실화 되었다고 할 수 있습니다. 워드프레스 vs 티스토리를 고민하는 분들이 2023년 이후 점점 늘어나고…

  • WordPress: 개념과 기능 | 왜 워드프레스를 사용하는가?

    WordPress는 무료 오픈 소스 콘텐츠 관리 시스템(CMS)입니다. 원래는 블로그 게재 목적으로 개발되었지만, 시간이 지나면서 인터넷 포럼, 웹사이트, 다양한 콘텐츠 유형을 지원하는 플랫폼으로 발전했습니다. 테마와 플러그인 시스템을 기반으로 하며, 미디어 갤러리, 회원제 사이트, 학습 관리 시스템(LMS), 우커머스를 활용한 쇼핑몰 등 거의 모든 형태의; 웹사이트 구축이 가능합니다. 콘텐츠 관리 시스템(CMS)을 사용하는 이유는 비 개발자도 손쉽게…

  • Clearfy 자산 관리자 설정 방법

    워드프레스 캐시 플러그인 중 Clearfy 자산 관리자 설정을 사용해서 워드프레스 사이트 내에서 사용하지 않는 CSS 및 JS를 비활성화 할 수 있습니다. 일반적인 캐시 플러그인이 가지고 있지 않은 기능으로 특정 CSS 또는 JS 파일이 무거운 경우 비활성화를 진행할 수 있습니다. 목차1️⃣ wp-config.php 파일이란?🔲 권한을 소유자에게만 설정🔲 .htaccess에서 파일 접근 차단하기2️⃣ wp-config-sample.php3️⃣ 파일 편집 비활성화1….

답글 남기기

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

Prove your humanity: 2   +   5   =