워드프레스 웹사이트를 보호하기 위한 기본적인 보안 조치들은 이미 잘 알고 계실 것입니다.
비밀번호를 '강력하게'(특수문자, 대문자, 소문자, 숫자를 혼합) 설정해야 한다는 점, 'admin'을 사용자 이름으로 쓰면 안 된다는 점, 비밀번호를 자주 변경해야 한다는 점 등을 알고 있을 겁니다. 워드프레스 사이트에 2단계 인증을 적용하고 백업도 해두었으며, 프리미엄 플러그인을 무료로 받거나 출처 불명의 소스에서 다운로드하지 않고 있을 것입니다. 그렇다면 그 외에 무엇을 더 해야 할까요?
이 글에서는 잘 알려지지 않았지만 효과가 확실한 방법들을 통해 워드프레스 사이트를 한층 더 안전하게 지키는 실전 보안 팁 5가지를 소개합니다.
1. 로그인 페이지 이름 변경 또는 위치 이동

워드프레스의 기본 로그인 페이지 주소는 'www.websitename.com/wp-login.php'(또는 'www.websitename.com/wp-admin')입니다. 사이트를 보호하는 방법 중 하나는 로그인 페이지를 숨기거나 주소를 변경해 해커가 쉽게 찾지 못하도록 하는 것입니다. 로그인 시도 횟수와 시도 간격을 제한해 접근을 통제하면 보안이 더욱 강화됩니다.
Jetpack이 이미 설치되어 있다면 'Brute Force Protection(무차별 대입 공격 방어)' 모듈을 활성화할 수 있습니다. 이 모듈이 켜져 있으면 Jetpack이 대시보드에 악성 로그인 시도 횟수를 표시해 주며, 여러 IP 주소를 화이트리스트에 등록하는 기능도 제공합니다. Jetpack에서 '설정(Settings)' → 'Protect' → 'Configure' 순서로 이동하면 아래 이미지와 같은 화면을 볼 수 있습니다.

Cerber Security and Limit Login Attempt는 Jetpack의 대안이 되는 플러그인입니다. Jetpack 사용을 선호하지 않는다면 Limit Login이 좋은 선택지입니다. 작성 시점 기준 이 플러그인은 40,000회 이상 설치되었으며, 111명의 사용자 중 108명이 별점 5점을 줄 만큼 탄탄한 평판을 유지하고 있습니다.
Limit Login은 사용법이 비교적 간단하지만, 'Hardening' 섹션까지 세부 설정하면 사이트 보안이 한층 강화됩니다. 트랙백과 핑백을 포함한 XML-RPC 서버에 대한 모든 접근은 기본적으로 차단됩니다. 다만 워드프레스 REST API에 접근해야 하는 경우(예: 블로그의 Android 또는 iOS 앱이 필요로 하는 경우)에는 WP REST API와 XML-RPC 접근을 허용하도록 설정을 조정하세요.

2. 안전한 호스팅 환경 선택
무려 41%의 워드프레스 보안 침해가 사이트 자체가 아닌 호스팅 업체 측에서 발생한다는 점을 고려하면, 호스팅 업체의 보안 수준을 확인하는 것은 필수입니다. 실제로 보안에서 호스팅이 차지하는 비중이 가장 큽니다. 약한 비밀번호로 인한 해킹은 8%, 테마 취약점은 29%, 플러그인 취약점은 22%에 불과합니다. 즉, 사이트 안전의 약 절반은 호스팅에 달려 있는 셈입니다.

공유 호스팅을 사용한다면 계정 격리(account isolation) 옵션이 포함되어 있는지 반드시 확인하세요. 계정 격리가 적용되면 다른 사용자의 웹사이트에서 발생한 문제로부터 내 사이트가 보호됩니다. 가능하다면 워드프레스 사용자를 위해 특화된 호스팅 서비스를 이용하는 것이 가장 좋습니다. 이런 서비스에는 워드프레스 전용 방화벽, 제로데이 멀웨어 공격 방어, 최신 버전의 MySQL·PHP, 전문 워드프레스 서버, 워드프레스에 능숙한 고객 지원 등이 포함됩니다. WP Engine, Siteground, Pagely 같은 업체는 검증된 보안 기록을 자랑합니다.

3. 항상 최신 상태 유지, 업데이트된 소프트웨어만 사용
컴퓨터의 백신 프로그램과 안티멀웨어를 최신 상태로 유지해야 한다는 것은 누구나 알고 있습니다. 이 원칙은 플러그인과 테마에도 똑같이 적용됩니다. 항상 최신 버전으로 유지하고, 더 이상 사용하지 않는 테마나 플러그인이 있다면 과감히 삭제하세요. 사이트 환경에 맞다면 플러그인과 테마의 자동 업데이트 설정도 고려해 볼 만합니다. 자동 업데이트를 설정하려면 wp-config.php 파일에 아래 코드를 추가하면 됩니다. 먼저 플러그인용 코드입니다:
add_filter( 'auto_update_plugin', '__return_true' );
테마용 코드는 다음과 같습니다:
add_filter( 'auto_update_theme', '__return_true' );
사이트 유지관리를 자동화하고 싶다면 워드프레스 코어 업데이트 자동화도 고려할 수 있습니다. 단, 자동 업데이트는 최신 워드프레스 버전과 호환되지 않는 플러그인이 설치되어 있을 경우 사이트를 손상시킬 수 있으니 주의해야 합니다. 워드프레스 코어 자동 업데이트를 설정하려면 아래 코드를 wp-config.php 파일에 삽입하세요:
# Enable all core updates, including minor and major: define( 'WP_AUTO_UPDATE_CORE', true );
4. 플러그인·테마 편집기 및 PHP 오류 보고 비활성화
플러그인과 테마의 코드를 수시로 수정하거나 유지관리하지 않는다면 워드프레스에 내장된 플러그인·테마 편집기를 비활성화하는 것이 좋습니다. 이는 웹사이트 보안을 위한 조치입니다.
권한이 있는 워드프레스 사용자라면 누구나 이 편집기에 접근할 수 있기 때문에, 해당 계정이 해킹당하면 사이트 전체가 위험에 노출됩니다. 실제로 해커는 편집기의 코드를 몇 줄만 수정해도 사이트를 마비시킬 수 있습니다. 편집기를 비활성화하려면 아래 코드를 wp-config.php에 추가하세요:
define( 'DISALLOW_FILE_EDIT', true );
오류 보고 기능은 문제 해결에 도움이 되는 유용한 기능입니다. 하지만 결정적인 문제가 하나 있습니다. 오류 메시지에는 서버 경로 정보가 함께 포함된다는 점입니다. 해커는 이 경로를 통해 웹사이트의 구조를 쉽게 파악할 수 있습니다. 따라서 PHP 오류 보고는 완전히 비활성화하는 것이 가장 안전합니다. wp-config.php 파일에 아래 코드를 사용하세요:
error_reporting(0);
@ini_set('display_errors', 0);
5. .htaccess로 핵심 파일 보호하기

.htaccess 파일은 워드프레스 웹사이트의 심장부라고 할 수 있을 만큼 중요합니다. 이 파일은 사이트의 고유주소(퍼머링크) 구조와 보안을 담당합니다. #BEGIN WordPress와 #END WordPress 태그 외부에는 웹사이트 디렉터리 내 파일의 공개 범위를 조정하는 코드를 제한 없이 추가할 수 있습니다.
아직 설정하지 않았다면 사이트의 wp-config.php 파일을 숨기세요. 이 파일에는 개인 정보와 사이트 운영에 필수적인 중요 정보가 담겨 있어 외부 노출을 막아야 합니다. 아래 코드 스니펫으로 숨길 수 있습니다:
order allow,deny deny from all
관리자 영역 접근을 제한하려면 새 .htaccess 파일을 만들어 'wp-admin' 디렉터리에 업로드한 후, 아래 코드를 입력합니다:
order deny,allow allow from 192.168.5.1 deny from all
'192.168.5.1' 자리에 본인의 IP 주소를 입력하면 됩니다. 여러 IP 주소에서 wp-admin에 접근할 수 있게 하려면 각 IP 주소를 별도의 줄에 allow from IP 주소 형식으로 나열하세요. wp-login.php에 대한 접근도 거의 같은 방식으로 제한할 수 있습니다. .htaccess에 아래 코드를 추가하기만 하면 됩니다:
order deny,allow Deny from all # allow access from my IP address allow from 192.168.5.1
모든 IP를 차단하는 대신, wp-admin이나 wp-login.php에 접근하려는 특정 IP만 골라서 차단하고 싶다면 아래 코드를 사용하세요:
order allow,deny deny from 456.123.8.9 allow from all
또한 디렉터리 열람을 차단하면 방문자가 사이트의 폴더 구조를 훔쳐볼 수 없게 됩니다. 아래 코드 스니펫을 활용하세요:
Options All -Indexes
마무리
지금까지 워드프레스 웹사이트의 보안을 강화하는 데 바로 적용할 수 있는 5가지 방법을 살펴봤습니다. 이 중 가장 중요하면서도 지금 당장 실천하기 쉬운 것은 바로 보안 평판이 검증된 호스팅 업체를 선택하는 것입니다. 사이트 보안의 절반이 호스팅에 달려 있기 때문입니다.
어떤 보안 팁이 가장 유용했나요? 이 글에 없는 다른 보안 노하우가 있다면 댓글로 공유해 주세요.