WordPress 보안 위협과 대응
flowchart TD
THREAT["보안 위협"]
BRUTE["무차별 대입\n(Brute Force)"]
MALWARE["악성코드\n(Malware)"]
VULN["플러그인 취약점\n(Vulnerability)"]
SPAM["스팸 봇\n(Spam)"]
BRUTE_FIX["로그인 시도 제한\n2FA 적용"]
MALWARE_FIX["Wordfence 방화벽\n정기 스캔"]
VULN_FIX["플러그인 최신 버전 유지\n취약 플러그인 제거"]
SPAM_FIX["Akismet\nreCAPTCHA"]
THREAT --> BRUTE --> BRUTE_FIX
THREAT --> MALWARE --> MALWARE_FIX
THREAT --> VULN --> VULN_FIX
THREAT --> SPAM --> SPAM_FIX
자동 백업 설정
UpdraftPlus (무료)
플러그인 > 새로 추가 > "UpdraftPlus" 설치 및 활성화
설정 > UpdraftPlus 백업
자동 백업 일정:
파일: 매주 1회
데이터베이스: 매일 1회
보관 개수: 4개 (4주치 유지)
원격 저장소:
Google Drive: 무료 15GB
Dropbox
Amazon S3
백업 항목: ☑ 플러그인, 테마, 업로드, 기타, 데이터베이스 모두 체크
수동 백업 및 복원:
설정 > UpdraftPlus 백업
→ 지금 백업 클릭
→ 복원: 백업 목록에서 선택 > 복원 클릭
호스팅 자체 백업 활용
대부분의 국내 호스팅은 관리자 패널에서 cPanel 자동 백업 기능을 제공합니다. UpdraftPlus와 병행해 이중 백업을 권장합니다.
Wordfence — 방화벽 & 악성코드 스캔
플러그인 > 새로 추가 > "Wordfence Security" 설치 및 활성화
방화벽 설정
Wordfence > 방화벽
방화벽 상태: 확장 보호 (Extended Protection) 권장
→ .htaccess 또는 php.ini 수정 안내에 따라 설정
웹 애플리케이션 방화벽(WAF):
자동으로 SQL 인젝션, XSS 등 차단
실시간 IP 차단:
☑ Brute force 공격 IP 자동 차단
로그인 실패 5회 → 30분 차단
로그인 실패 20회 → 24시간 차단
악성코드 스캔
Wordfence > 스캔 > 스캔 시작
스캔 항목:
- 핵심 파일 무결성 (WordPress 공식 버전과 비교)
- 플러그인·테마 취약점
- 악성 코드 패턴 탐지
- 백도어 탐지
- 스팸 링크 삽입 확인
자동 스캔: 매일 1회 예약
이메일 알림: 위협 발견 시 즉시 발송
로그인 보안 강화
로그인 URL 변경
플러그인: WPS Hide Login
설정 > WPS Hide Login
로그인 URL: /my-secret-login (추측하기 어렵게)
리다이렉트 URL: /404 (wp-admin 직접 접근 시 404로)
2단계 인증 (2FA)
플러그인: Google Authenticator — WordPress Two Factor Authentication (miniorange)
사용자 > 프로필
→ Two Factor Authentication 섹션
→ QR 코드 스캔 (Google Authenticator 앱)
→ 이후 로그인 시 앱의 6자리 코드 입력 필요
로그인 시도 제한
Wordfence > 방화벽 > 무차별 대입 공격 방지
로그인 실패 잠금:
로그인 실패 횟수: 5회
로그인 실패 기간: 5분
잠금 시간: 30분
비밀번호 규칙:
☑ 비밀번호가 유출된 경우 사용자에게 알림
☑ 관리자는 강력한 비밀번호 강제
SSL/HTTPS 강제 적용
# wp-config.php 에 추가
define('FORCE_SSL_ADMIN', true);
# .htaccess 에 추가 (HTTP → HTTPS 리다이렉트)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
또는 플러그인:
Really Simple SSL 설치
→ 활성화만 하면 자동으로 HTTPS 강제 설정
정기 업데이트 루틴
업데이트 순서 (중요)
1. 전체 백업 먼저
2. WordPress 핵심 업데이트
3. 플러그인 업데이트 (한 번에 하나씩, 사이트 확인)
4. 테마 업데이트
5. 사이트 정상 동작 확인
자동 업데이트 설정
// wp-config.php
define('WP_AUTO_UPDATE_CORE', true); // 보안 패치 자동 업데이트
define('AUTOMATIC_UPDATER_DISABLED', false);
// functions.php (테마) — 플러그인 자동 업데이트 활성화
add_filter('auto_update_plugin', '__return_true');
// 주의: 대형 업데이트는 수동으로 테스트 후 적용 권장
스테이징(테스트) 환경 활용
플러그인: WP Staging (무료)
WP Staging > Create new staging site
→ 실 사이트 복제 → 테스트 환경에서 먼저 업데이트
→ 이상 없으면 실 사이트 적용
스팸 방어
Akismet Anti-Spam:
WordPress 기본 내장, API 키 발급 후 활성화
개인 사이트: 무료
상업용: 월 $10~
reCAPTCHA v3 (구글):
플러그인: Contact Form 7 Turnstile (또는 reCAPTCHA)
Google Cloud Console에서 키 발급
로그인 폼, 댓글 폼, 문의 폼에 적용
월간 유지보수 체크리스트
매일:
□ WooCommerce 새 주문 확인
□ Wordfence 보안 알림 이메일 확인
매주:
□ 댓글 스팸 검토 및 삭제
□ 백업 완료 여부 확인
매월:
□ WordPress · 플러그인 · 테마 업데이트
□ 사용하지 않는 플러그인 비활성화 및 삭제
□ 미디어 라이브러리 정리
□ 데이터베이스 최적화 (WP-Optimize)
□ 404 오류 페이지 확인 (Google Search Console)
□ 페이지 속도 점수 확인 (PageSpeed Insights)
분기별:
□ 비밀번호 변경 (관리자, FTP, DB)
□ 사용자 계정 권한 검토
□ 백업 복원 테스트
정리: WordPress 운영 핵심 플러그인
| 분류 | 플러그인 | 용도 |
|---|---|---|
| SEO | Yoast SEO | 검색 최적화 |
| 보안 | Wordfence | 방화벽·스캔 |
| 백업 | UpdraftPlus | 자동 백업 |
| 캐싱 | WP Rocket / LiteSpeed | 속도 최적화 |
| 이미지 | Smush | 이미지 압축 |
| 스팸 | Akismet | 댓글 스팸 차단 |
| 폼 | Contact Form 7 | 문의 폼 |
| SSL | Really Simple SSL | HTTPS 강제 |
워드프레스로 웹사이트 만들기 시리즈를 완주했습니다. 설치부터 쇼핑몰 운영, 보안까지 실전에서 바로 적용 가능한 방법을 모두 익혔습니다.