워드프레스 보안 체크리스트
로그인·업데이트·권한 등 워드프레스 보안 항목을 점검합니다.
워드프레스는 전 세계 웹사이트의 40% 이상을 구동하는 만큼 자동화된 봇 공격의 첫 번째 표적입니다. 기본 설정 그대로 운영하면 무차별 로그인 시도, 취약한 플러그인 악용, 사용자 계정 열거, XML-RPC 증폭 공격에 그대로 노출됩니다. 이 체크리스트는 로그인 보안부터 파일 권한, 노출 최소화, 백업·HTTPS까지 실무에서 가장 효과가 큰 하드닝 항목을 한곳에 모아 점검할 수 있게 합니다.
각 항목을 체크하면 준비도(%)가 실시간으로 계산되고 정상/주의/위험 상태로 표시됩니다. 모든 처리는 브라우저 안에서만 일어나며 입력값이나 체크 상태는 외부로 전송되지 않습니다. 신규 사이트 오픈 전 점검이나 정기 보안 감사에 활용하세요.
로그인 보안
코어·플러그인·테마 업데이트
파일·권한
노출 최소화
백업·HTTPS
왜 워드프레스 하드닝이 필요한가
대부분의 워드프레스 침해는 제로데이가 아니라 방치된 기본 설정과 업데이트되지 않은 플러그인에서 시작됩니다. 공격자는 /wp-login.php에 무차별 대입을 시도하고, /wp-json/wp/v2/users로 사용자명을 수집하며, 알려진 취약점이 있는 플러그인을 스캔합니다. 하드닝은 이런 자동 공격의 표면을 줄이는 작업입니다.
우선순위로 보는 핵심 조치
- 로그인 보안: 2단계 인증(2FA), 로그인 시도 제한, 강력한 비밀번호가 가장 비용 대비 효과가 큽니다.
- 업데이트: 코어·플러그인·테마를 최신으로 유지하고 사용하지 않는 플러그인/테마는 삭제하세요.
- 파일 보호:
wp-config.php접근 차단과DISALLOW_FILE_EDIT로 관리자 화면 코드 편집을 막습니다. - 노출 최소화: 버전 정보 숨김, 불필요한
XML-RPC차단, REST API 사용자 열거 차단. - 복구 대비: 자동 백업과 전 구간 HTTPS는 사고 발생 시 피해를 결정적으로 줄입니다. 응답에 보안 헤더가 제대로 적용됐는지는 보안 헤더 점검으로, 콘텐츠 보안 정책은 CSP 생성기로 보강하세요.
권한 설정 기준
일반적으로 디렉터리는 755, 파일은 644, wp-config.php는 640 또는600으로 설정합니다. 웹서버가 쓰기 권한을 가진 디렉터리는 최소화하고, 절대 777을 사용하지 마세요.
wp-config.php 핵심 상수 빠른 참조
체크리스트의 여러 항목은 결국 wp-config.php에 상수 몇 줄을 추가하는 것으로 끝납니다. 자주 쓰이는 하드닝 상수와 효과를 정리했습니다. 항상 /* That's all, stop editing! */ 주석 위에 추가하세요.
| 상수 / 설정 | 권장값 | 효과 |
|---|---|---|
DISALLOW_FILE_EDIT | true | 관리자 화면의 플러그인/테마 코드 편집기 비활성화 |
DISALLOW_FILE_MODS | true | 플러그인/테마/코어 설치·업데이트까지 전면 차단(배포 파이프라인 운영 시) |
FORCE_SSL_ADMIN | true | wp-admin/로그인 세션을 HTTPS로 강제 |
WP_DEBUG / WP_DEBUG_DISPLAY | false / false | 운영 환경에서 경로·쿼리 노출 오류 메시지 숨김 |
WP_AUTO_UPDATE_CORE | 'minor' 이상 | 보안 패치 자동 적용(최소한 마이너 업데이트 유지) |
$table_prefix | wp_ 외 임의값 | 자동화된 SQL 인젝션 페이로드의 테이블명 추측 난이도 증가 |
| 인증 키/솔트 8종 | 난수 재생성 | 기존 로그인 쿠키 전부 무효화(침해 의심 시 강제 로그아웃) |
예시: 침해 의심 사이트 1차 잠금
관리자 외 알 수 없는 사용자가 생겼다는 신고를 받았다고 가정해 봅시다. 코드를 들여다보기 전, 다음 순서로 공격자를 즉시 끊어낼 수 있습니다.
- 1) 솔트 재생성:
api.wordpress.org/secret-key/1.1/salt/가 생성한 8줄을wp-config.php의 기존 키/솔트와 통째로 교체 → 도난당한 로그인 쿠키가 전부 무효가 되어 모든 세션이 강제 로그아웃됩니다. - 2) 비밀번호 일괄 변경: 관리자 계정 비밀번호를 바꾸고, 정체불명 관리자 계정은 삭제합니다.
- 3) 파일 편집 봉쇄:
define('DISALLOW_FILE_EDIT', true);추가로 재침투 시 코드 주입 경로를 차단합니다. - 4) 점검 결과: 이 체크리스트에서 위 항목을 체크하면 준비도(%)가 즉시 올라가고, 남은 위험 항목(백업·2FA 등)이 한눈에 드러납니다.
흔한 실수 / 함정
wp-config.php 상단의 인증 키/솔트는 로그인 비밀번호와 무관합니다. 솔트만 바꾸면 기존 세션 쿠키가 무효화되어 강제 로그아웃은 되지만, 공격자가 이미 알아낸 계정 비밀번호는 그대로 유효합니다. 반대로 비밀번호만 바꾸고 솔트를 그대로 두면 탈취된 쿠키로 로그인 상태가 유지될 수 있습니다. 침해 대응 시에는 반드시 둘 다 교체해야 합니다.
자주 묻는 질문
이 체크리스트의 입력값은 서버로 전송되나요?
로그인 URL을 변경하면 정말 안전해지나요?
XML-RPC를 꼭 꺼야 하나요?
DISALLOW_FILE_EDIT는 어떤 효과가 있나요?
보안 플러그인 하나면 충분한가요?
관련 가이드
- 워드프레스 보안 설정: 해킹 막는 필수 체크 10가지워드프레스가 뚫리는 흔한 경로와 로그인·플러그인·파일권한·헤더까지 필수 보안 설정.