wp-config.php 보안 설정은 워드프레스 보안에서 절대 미룰 수 없는 항목입니다. 이 파일 하나에 DB 접속 정보, 비밀 키, 테이블 접두사가 모두 담겨 있기 때문입니다. 제가 새로 인수인계받은 병원 사이트를 점검하다 wp-config.php가 브라우저에서 그대로 열리는 것을 발견했을 때의 충격은 지금도 생생합니다. 다행히 DB 비밀번호가 노출되기 전에 조치했지만, 그 이후로는 사이트를 맡을 때마다 가장 먼저 이 파일부터 확인합니다.
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 점검 시 확인 항목:
작은 설정 하나가 DB 전체를 지킵니다.
AI가 초안을 생성하고, 의료기관 인프라 운영자가 1차 데이터 기반으로 최종 검수·승인합니다.
작성·검수: WavePix 운영자 (의료기관 3곳 인프라 전담)