← 전체 목록
병원홈페이지보안

wp-config.php 보안 설정 5가지로 DB 계정 유출을 차단합니다

ℹ️ 본 글은 정보 제공 목적이며, 광고·제휴 링크가 포함될 수 있습니다.

wp-config.php 보안 설정은 워드프레스 보안에서 절대 미룰 수 없는 항목입니다. 이 파일 하나에 DB 접속 정보, 비밀 키, 테이블 접두사가 모두 담겨 있기 때문입니다. 제가 새로 인수인계받은 병원 사이트를 점검하다 wp-config.php가 브라우저에서 그대로 열리는 것을 발견했을 때의 충격은 지금도 생생합니다. 다행히 DB 비밀번호가 노출되기 전에 조치했지만, 그 이후로는 사이트를 맡을 때마다 가장 먼저 이 파일부터 확인합니다.

핵심 보안 설정 5가지

1. 파일 권한 제한

wp-config.php는 서버에서 읽기 전용으로 설정해야 합니다.

chmod 400 /var/www/html/wp-config.php
# 또는 최소한
chmod 440 /var/www/html/wp-config.php

2. 웹에서 직접 접근 차단 (Nginx)

location = /wp-config.php {
    deny all;
    return 403;
}

3. wp-config.php를 웹루트 상위 폴더로 이동

워드프레스는 wp-config.php를 한 단계 상위 디렉토리에서도 자동 탐지합니다.

mv /var/www/html/wp-config.php /var/www/wp-config.php

이렇게 하면 웹루트 밖에 있어서 브라우저 직접 접근이 원천 차단됩니다.

4. 디버그 모드 비활성화

운영 서버에서는 반드시 꺼야 합니다.

define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);

5. 파일 편집기 비활성화

관리자 패널에서 파일을 직접 편집하는 기능을 끕니다.

define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);

비밀 키 주기적 교체

wp-config.php 안의 인증 키와 솔트 값은 쿠키 보안에 사용됩니다. 보안 사고가 있었거나 관리자 계정이 바뀌었다면 반드시 교체하세요.

WordPress.org의 비밀 키 생성기 API를 이용하면 새 값을 쉽게 받을 수 있습니다.

https://api.wordpress.org/secret-key/1.1/salt/

위 URL에서 받은 8줄을 wp-config.php의 기존 AUTH_KEY, SECURE_AUTH_KEY 등과 교체하면 됩니다. 교체 즉시 모든 로그인 세션이 만료됩니다.

체크리스트 정리

매 분기 wp-config.php 점검 시 확인 항목:

  • 파일 권한 400 또는 440
  • 웹루트 상위 폴더에 위치
  • WP_DEBUG = false
  • DISALLOW_FILE_EDIT = true
  • 비밀 키 최근 1년 이내 교체
  • DB 비밀번호 충분한 복잡도

작은 설정 하나가 DB 전체를 지킵니다.

편집 정책

AI가 초안을 생성하고, 의료기관 인프라 운영자가 1차 데이터 기반으로 최종 검수·승인합니다.

작성·검수: WavePix 운영자 (의료기관 3곳 인프라 전담)