
워드프레스에서 XML-RPC를 비활성화하여 보안을 강화할 수 있습니다. 이 글에서는 여러 가지 방법으로 XML-RPC 접근을 비활성화하는 방법에 대하여 살펴보겠습니다.
워드프레스에서 XML-RPC 비활성화 방법
XML-RPC란 XML을 사용하여 호출과 HTTP를 전송 메커니즘으로 인코딩하는 원격 프로시저 호출(a remote procedure call which uses XML to encode its calls and HTTP as a transport mechanism)이라고 합니다. 무슨 말인지 어렵네요. 쉽게 말하자면 사용자가 Windows Live Writer와 같은 인기 웹블로그 클라이언트(weblog client)를 사용하여 워드프레스 블로그에 글을 게시하도록 허용하는 시스템이라고 합니다.
이 기능을 사용하지 않는다면 XML-RPC를 비활성화하는 것이 보안상 좋다고 합니다. XML-RPC를 통한 Brute Force 공격(DoS 공격)과 같은 해킹 공격이 자주 발생하는 것 같습니다.
.htaccess 파일에 코드 추가하기
XML-RPC를 비활성화하려면 다음 코드를 .htaccess 파일에 추가하도록 합니다.
# BEGIN protect xmlrpc.php <files xmlrpc.php> order allow,deny deny from all </files> # END protect xmlrpc.php
특정 IP를 허용하려면 deny from all 아래에 다음 라인을 추가하도록 합니다.
allow from 123.123.123.123
다른 방법으로 다음 코드를 함수 파일에 추가해도 된다고 합니다. 차일드 테마를 만들어 작업해야 테마가 업데이트되는 경우에 추가한 코드가 초기화되지 않습니다.
add_filter('xmlrpc_enabled', '__return_false');
보안 플러그인에서 XML-RPC 비활성화 설정하기
iThemes Security 같은 일부 보안 플러그인에서 XML-RPC를 비활성화하는 옵션을 제공합니다. iThemes에서는 워드프레스 알림판 > Security > Settings > WordPress Tweaks로 이동하여 XML-RPC 옵션을 "Disable XML-PRC"로 설정하면 됩니다.

워드프레스 최적화 플러그인을 통해 XML-RPC 비활성화
Clearfy와 같은 최적화 같은 워드프레스 최적화 플러그인에서 XML-RPC를 비활성화하는 옵션을 제공할 수도 있습니다. Clearfy의 경우 설정 > Clearfy > Defence > Base settings 아래에서 Disable XML-RPC 옵션을 활성화(On)할 수 있습니다.

캐시 플러그인과 함께 Clearfy와 같은 최적화 플러그인을 사용하여 세팅하면 사이트 속도가 향상될 수 있습니다("워드프레스 사이트 속도 향상을 위한 Clearfy 플러그인 세팅 예시" 참고).
XML-RPC 비활성화 플러그인 사용
XML-RPC를 비활성화하기 위해 플러그인까지 사용하는 것은 별로 바람직하지 않지만, FTP에 접속할 수 없는 경우 워드프레스 알림판 > 플러그인 > 새로 추가로 이동하여 disable xml-rpc를 검색하여 Disable XML-RPC 플러그인을 설치하여 활성화할 수 있습니다.

이 플러그인은 10만 개 이상 사이트에 사용되고 있습니다. 이 플러그인이 제대로 작동하지 않으면 Manage XML-RPC 플러그인을 사용할 수 있습니다.
클라우드웨이즈(Cloudways)에서 XML-RPC 비활성화하기
클라우드웨이즈를 이용하는 경우 애플리케이션 설정에서 XMLRPC 액세스를 차단 설정할 수 있습니다.
Cloudways에 로그인하고 왼쪽 패널에 마우스를 올립니다. 그러면 알림판(Dashboard) 등의 숨겨진 메뉴가 표시됩니다. Cloudways Flexible » My Applications를 선택하면 애플리케이션 목록이 표시됩니다. 설정을 변경할 애플리케이션(워드프레스 사이트)을 선택합니다.

Application Management(애플리케이션 관리) 페이지가 표시됩니다. Applications Settings » WordPress Settings 탭을 차례로 클릭합니다.

이전에는 모든 설정이 Application Settings 아래에 있었지만, 이제 워드프레스 관련 설정들을 을 분리하여 Application Settings 아래의 WordPress 탭으로 이동하였습니다.
XMLRPC Access 설정에서 이 기능을 켜거나 끌 수 있습니다. 기본적으로 비활성화되어 있으며 토글 단추를 눌러 활성화할 수 있습니다. 비활성화되어 있으면 XMLRPC Access is disabled가 표시됩니다.
XMLRPC 액세스를 활성화해야 하는 경우
외부 프로그램이나 앱을 사용하여 워드프레스로 자동 포스팅을 하는 경우 XML-RPC 접근을 허용해야 할 수 있습니다. 또한, 젯팩과 일부 플러그인에서 이 기능을 사용하여 사이트와 통신하기도 합니다. 그런 경우에도 접근을 허용해야 합니다.
XMLRPC 접근을 허용해야 하지만 접근이 비활성화되어 있다면, 본문의 내용을 참고하여 비활성화 관련 코드를 삭제하거나 옵션을 제거하여 액세스를 허용하시기 바랍니다.
워드님, 안녕하세요. 혹시 벌쳐 서버에서 xmlrpc를 비활성화 하려면 알려주신 코드를 똑같이 htaccess파일에 적용해도 될까요?
ken님. Vultr 서버의 웹서버가 nginx인 경우에는 상기 코드를 사용할 수 없습니다. 클라우드웨이즈의 Vultr 서버를 이용하는 경우에는 이용이 가능합니다.
nginx 웹서버인 경우 XMLRPC를 비활성화하는 플러그인을 설치해보시기 바랍니다. 또는, 일부 보안 플러그인에서 이 기능을 비활성화하는 옵션을 제공하기도 합니다.
아이고 이제야 봤네요.. 현재 클라우드웨이즈를 사용중이진 않고 벌쳐 플래스크 패널을 사용하고 있습니다. 웹 서버를 찾아볼려해도 무엇인지 모르겠네요.
간단히 xmlrpc.php 파일을 삭제해도 XML-RPC가 비활성화될 것입니다. 하지만 워드프레스가 업데이트될 때마다 매번 찾아서 삭제해야 하는 번거로움이 있을 것입니다. 플러그인을 사용하면 편리할 것입니다.
네~ 답변 감사드립니다!
감사합니다..^^
테마의 몇개의 소스에서 일일 트래픽이 제일 많은 것 같습니다..
Newspaper 테마가 지난 달 말에 업데이트가 되었습니다.
최신 버전으로 업데이트하셨나요?
네..저는 업데이트는 바로바로 합니다..