사용자 정의 WordPress API 엔드 포인트 보안 : 11 필수 팁
게시 됨: 2025-05-23WordPress REST API를 사용하는 경우 엔드 포인트를 보호하는 것이 공격 벡터가되지 않도록하는 중요한 단계입니다. 이 안내서에서는 모범 사례를 탐색하고 있습니다.
아래에서는 API 트래픽을 안전하게 유지하고 올바른 권한을 설정하고 전송 된 데이터를 보호 및 청소하는 방법에 대해 논의하고 있으며 잠재적 인 문제를 해결합니다.
WordPress API 엔드 포인트 용 TL; DR
시간이 걸렸습니까? 다음은 주요 테이크 아웃입니다.
WordPress REST API는 강력한 통합과 유연성을 허용하지만, 끝 점이 무담보 상태로 남겨두면 공격에 문을 열 수도 있습니다. 사이트를 안전하게 유지하려면 API 사용의 모든 측면에 대해 계층화 된 보안을 구현하는 것이 중요합니다.
- WordPress, 테마 및 플러그인을 알려진 취약점에 최신 상태로 유지하십시오.
- 차단 및 변조로부터 보호하기 위해 SSL/HTTPS를 사용하여 모든 API 트래픽을 확보하십시오.
- 사이트 속도 우선 순위를 정하기 위해 시간 초과를 피하고 API를 신속하게 처리하며 거부 서비스 공격 중에 사이트를 계속 작동시킵니다.
- 사용자 정의 사용자 역할 및 권한을 사용하여 권한을 필수 최소값으로 유지하십시오.
- 악의적 인 마크 업을 유지하기 위해 데이터를 검증하고 소독합니다.
- API 엔드 포인트 액세스를 제어하기 위해 인증 및 승인을 사용하십시오.
- 무차별 포스, 스크래핑 및 DOS 공격을 방어하기 위해 요금 제한을 추가하십시오.
- 필요한 경우 보안 헤더, 로깅 및 IP 화이트리스트로 설정을 강화하십시오.
WordPress REST API를 알게됩니다
맞춤형 API 엔드 포인트에 대한 보안 관행에 뛰어 들기 전에 WordPress 생태계에 어떻게 적합한 지 이해하는 것이 중요합니다.
WordPress Rest API는 무엇입니까?
맨 위에서 시작합시다. API는 "Application Programming Interface"를 나타냅니다. 두 가지 다른 프로그램이 서로 통신하고 데이터를 교환 할 수있는 소프트웨어입니다.
WordPress에는 API가 많지만 가장 강력하고 중요한 것은 나머지 API입니다. WordPress 4.7 이후 핵심 기능이었습니다.

REST는 "표현 SATE 전송"을 나타내며 몇 가지 이점을 제공하는 API를 만드는 표준을 설명합니다. 그들 중 하나는 RESTFUL API가 서로 의사 소통하는 데 더 쉬운 시간을 가지고 있다는 것입니다.
WordPress REST API는 또한 JSON (JavaScript 객체 표기법) 데이터 형식을 사용하며, 이는 많은 프로그래밍 언어와 함께 읽고 쓰기 쉽고 호환됩니다.

get (retieve), post (create), put/patch (업데이트) 및 삭제 (제거)와 같은 HTTP 요청을 사용하여 WordPress와 상호 작용하는 표준화 된 방법을 제공합니다. 도움을 받아 웹 사이트에 먼저 로그인하지 않고 외부 WordPress에서 게시물, 페이지, 사용자 및 댓글과 같은 핵심 데이터 유형을 조작 할 수 있습니다.
이 모든 것을 사용하면 WordPress를 광범위한 외부 소프트웨어, 도구 및 응용 프로그램과 통합하고 연결할 수 있습니다. 예를 들어, REST API는 헤드리스 워드 프레스 설정을위한 기본 도구입니다. 또는 웹 사이트를 모바일 앱과 통합합니다. WordPress 블록 편집기 (일명 Gutenberg)는 REST API를 사용하여 작동합니다.

WordPress의 API 엔드 포인트는 무엇입니까?
엔드 포인트는 WordPress 사이트의 객체 또는 리소스를 나타내는 특정 URL입니다. 게시물, 사용자 또는 사용자 정의 설정 일 수 있습니다. 다른 소프트웨어가 해당 URL에 요청을 보내면 WordPress가 해당 엔드 포인트에있는 데이터를 제공하거나 수정하게 할 수 있습니다.
WordPress에는 게시물, 댓글, 미디어 및 사용자와 같은 기본 데이터 유형에 대한 내장 된 엔드 포인트가 있습니다. 또한 맞춤형 기능에 대한 사용자 정의 엔드 포인트를 만들거나 사용자 정의 데이터에 액세스하거나 데이터 노출을 제한하거나 성능을 간소화 할 수 있습니다. 이것은 예를 들어 다음과 같이 유용합니다.
- 외부 앱이 게시 또는 검색 및 사용자 프로파일 업데이트와 같은 변경을 수행하도록 허용합니다.
- WordPress를 타사 도구, 앱 및 서비스 (예 : CRM, 이메일 마케팅 제공 업체)에 연결하십시오.
- 라이브 검색과 같은 동적 웹 사이트 기능에 대한 실시간 데이터 가져 오기를 활성화하십시오.
- 사용자 정의 관리자 패널 또는 분석 대시 보드를 구축하십시오.
API 종말점 보안이 중요한 이유는 무엇입니까?
API는 웹 사이트 데이터에 직접 액세스 할 수 있으므로 보안 위험도 제공합니다. 모든 API 종말점은 WordPress 사이트에 대한 잠재적 인 진입 점입니다. 적절한 보안 조치가 없으면 착취 당하고 다음과 같은 손상을 유발할 수 있습니다.
- 민감한 정보를 공개하십시오
- 무차별 인력 또는 주사 공격을 가능하게합니다
- 관리 기능 노출
- 서비스 거부 (DOS) 공격에 대한 복도를 열어줍니다
- 맬웨어 주입을 가능하게하십시오
예를 들어, https://yoursite.com/wp-json/wp/v2/users/ (실제 도메인으로 대체)에 액세스하면 기본적으로 웹 사이트에서 사용 가능한 모든 사용자 목록이 표시됩니다.

이를 통해 해커는 로그인하는 데 필요한 자격 증명의 절반을 제공하기 때문에 해커가 귀하의 사이트로 강제를 강제로 강제로 강제로 강제로 제공 할 수 있습니다. 따라서 API 엔드 포인트를 안전하게 보안하여 WordPress 웹 사이트를 안전하게 유지하는 방법을 아는 것이 중요합니다.
그러나 그렇게하는 것은 단일 수정에 관한 것이 아닙니다. 전략의 조합이 필요하며, 우리는 지금 이야기 할 것입니다.
1. 정기적으로 소프트웨어 업데이트를 적용하십시오
WordPress Core, 플러그인 및 테마를 업데이트하면 알려진 보안 취약점에 대한 최신 패치가 적용됩니다. 수동으로 적용하거나 WordPress에서 자동 업데이트 기능을 사용할 수 있습니다.

기본적으로 사소한 코어 업데이트는 보안 문제를 해결하기 위해 특별히 릴리스되므로 이미 자동으로 설치됩니다. 주요 업데이트를 적용하면 먼저 사이트를 백업하여 준비 웹 사이트에서 테스트하십시오.
또한 API 경로를 처리하는 사용자 정의 플러그인이나 코드를 검토하고 업데이트하는 것을 잊지 마십시오.
2. SSL/HTTPS를 사용하십시오
웹 사이트에서 SSL을 구현하면 모든 API 요청 및 응답이 환승 할 때 암호화되도록합니다. 이는 인증 토큰이나 사용자 정보와 같은 민감한 데이터가 중간의 공격에 의해 가로 채기 또는 조작되는 것을 방지합니다.
HTTPS에서 웹 사이트를 실행하려면 SSL/TLS 인증서가 필요합니다. 귀하의 웹 사이트에 아직이 제품이 없다면 일반적으로 호스팅 제공 업체를 통해 설정하는 것이 가장 쉽습니다. 그 후에도 모든 트래픽 및 API 호출에 대한 HTTPS 사용량을 시행해야합니다.
3. 웹 사이트 성능에 투자하십시오
웹 사이트의 다른 모든 부분과 마찬가지로 REST API가 작업을 수행하려면 사이트 성능이 우수합니다. 서버 리소스가 부족하여 웹 사이트가 API 요청을 수용 할 수없는 경우, 이에 의존하는 응용 프로그램 및 통합은 느린 응답 및 시간 초과를 경험할 수 있습니다.
또한 속도 최적화 된 웹 사이트는 API 엔드 포인트에 대한 공격 중에 방문자와 수정에 대한 반응을 유지할 수있는 더 나은 기회가 있습니다.
품질 호스팅에 투자하고 이미지 최적화와 같은 웹 사이트 성능을 향상시키는 방법에는 여러 가지가 있습니다. WordPress 사이트 속도를 높이는 쉬운 방법은 WP Rocket과 같은 성능 플러그인을 사용하는 것입니다. 여기에는 다음과 같은 현장 속도를 높이기위한 많은 기능이 포함되어 있습니다.
- 별도의 모바일 캐시를 포함한 캐싱
- CSS 배경, 비디오 및 iframes를 포함한 이미지에 대한 게으른로드
- 렌더 블로킹 리소스를 연기합니다
- 사전로드 캐시, 링크, 외부 파일 및 글꼴
- 자체 호스팅 Google 글꼴
- 데이터베이스 최적화
- RocketCDN을 포함한 CDN에 쉽게 연결하는 옵션
그 외에도 WP 로켓은 GZIP 압축과 같은 백그라운드에서 추가 성능 향상, CSS 및 JavaScript 파일을 조정하고 접힘 위의 이미지 최적화 (가장 큰 콘텐츠 페인트를 개선하기 위해)를 구현합니다.

결과적으로, 사이트는 플러그인을 활성화하자마자 성능 모범 사례의 80%를 충족하고 추가 작업없이 즉시 더 빠르게됩니다.
4. 사용자 정의 사용자 역할을 설정하십시오
WordPress는 기능이 기본 기능으로 정의 된 사용자 역할을 가지고 있습니다.

API 요청은 귀하의 웹 사이트에서 사용자에게 속하는 인증 자격 증명을 사용하기 때문에 올바른 액세스 수준을 설정하면 사용할 수있는 엔드 포인트와 수행 할 수있는 작업이 결정됩니다.
- 관리자 : 모든 API 엔드 포인트에서 모든 CRUD (작성, 읽기, 업데이트, 삭제) 작업을 수행 할 수 있습니다.
- 편집자 : 게시물, 페이지 및 미디어와 관련된 대부분의 API 엔드 포인트에 액세스 할 수 있으며 컨텐츠를 작성, 편집 및 삭제하는 권한이 있습니다.
- 저자 : 사용자에게 할당 된 게시물을 작성하고 업데이트하기위한 엔드 포인트에 대한 액세스가 포함되어 있습니다.
- 기고자 : API 엔드 포인트에 대한 액세스는 게시 할 수있는 능력없이 자신의 초안으로 제한됩니다.
- 가입자 : 가입자는 일반적으로 자신의 사용자 프로필 정보 만 검색 할 수 있습니다.
API 엔드 포인트 보안의 경우 당면한 작업에 필요하지 않은 경우 고소한 역할 (예 : 관리자)을 사용하지 마십시오. 이것은 잠재적 인 위반으로부터 가능한 낙진을 줄입니다.
더 나은 방법으로, 달성하려는 것에 필요한 권한만으로 전용 역할을 만드십시오. 이것을 최소 특권의 원칙이라고도합니다.
add_role () 및 add_cap () 함수를 사용하여 사용자 정의 역할을 정의하고 기능을 관리하고 remove_cap ()을 관리하여 기존 사용자 역할에서 권한을 제거 할 수 있습니다. 또는 사용자 역할 편집기 플러그인을 사용하십시오.

Disable WP REST API와 같은 플러그인 또는 functions.php와 같은 플러그인을 사용하여 승인되지 않은 사용자의 REST API를 완전히 비활성화 할 수도 있습니다.
5. 입력 유효성 검사 및 소독 구현
입력 유효성 검사 및 데이터 소독은 공격자가 API 엔드 포인트를 통해 유해한 SQL 명령 또는 스크립트를 제출하지 못하게합니다.
유효성 검사는 예상 형식, 유형 및 허용 값과 일치하는지 확인하기 위해 들어오는 데이터를 확인하는 것을 의미합니다. 반면에 소독은 요청에 포함 된 유해한 코드를 제거합니다. 둘 다 사용자가 생성 한 콘텐츠에 특히 중요합니다.
WordPress는 개발자 리소스에서 찾을 수있는이 목적을위한 몇 가지 기본 기능을 제공합니다.
- WordPress 개발자 리소스 : 데이터 검증
- WordPress 개발자 리소스 : 데이터 소독
6. 데이터베이스 쿼리에 준비된 명령문을 활용하십시오
준비된 명령문은 사용자 입력 및 데이터베이스 명령을 별도로 유지합니다. 이렇게하면 악의적 인 쿼리 구조를 중화시켜 SQL 주입 공격을 방지하는 데 도움이됩니다.
WordPress에서는 SQL 쿼리를 구축 할 때 $ wpdb-> repay ()를 사용하여 사용자 입력을 자동으로 탈출하고 쿼리에 직접 값을 삽입하는 대신 자리 표시 자 ( %s, %d 등)를 포함시킬 수 있습니다.
7. 강력한 인증 및 승인 관행을 보장하십시오
인증은 API 엔드 포인트에서 데이터를 요청하는 사용자 또는 엔터티가 자신이 주장하는 사람인지 확인합니다. 반면에 승인은 주어진 사용자가 액세스하고 할 수있는 일을 제어합니다. 우리는 이미 사용자 역할에 대해 말할 때 이미 이것을 다루었습니다.
기본적으로 WordPress REST API는 독특하고 단기적인 토큰 인 쿠키 및 Nonce를 통한 인증을 제공합니다. 사용자 프로필에서 응용 프로그램 비밀번호를 설정하여 기본 인증을 사용할 수도 있습니다.

OAUTH 및 JSON 웹 토큰은 WP REST API - OAUTH 1.0A 서버 및 WP REST API의 JWT 인증과 같은 플러그인을 통해도 제공됩니다.
다음 경우 다른 유형의 인증을 사용하십시오.
- 쿠키 + 비스 : 브라우저에서 API 호출을하는 테마/플러그인에 이상적입니다.
- 응용 프로그램 비밀번호 (기본 인증) : 외부 스크립트, 도구 또는 서비스에 사용됩니다. 설정하기 쉽고 서버 간 통신에 적합합니다.
- OAUTH : 사용자가 부여한 액세스가 필요한 타사 앱에 가장 적합합니다.
- JWT (JSON Web Tokens) : 헤드리스 또는 디퍼 커플 프런트 엔드 (예 : React 또는 Mobile Apps) 및 트래픽이 높은 API 엔드 포인트에 적합합니다.
8. 고용률 제한 및 조절
속도 제한을 사용하면 주어진 기간 동안 사용자 또는 IP가 생성 할 수있는 요청 수에 대한 제한을 설정할 수 있습니다. 그것은 시스템 과부하에 과부하를 일으키는 중박수 공격, 스팸, 자동 학대를 방어하는 데 도움이됩니다.
비율 제한은 특히 공개 또는 무단 엔드 포인트에 특히 중요합니다. 동시에, 공격 중일 때 모든 합법적 인 요청과 트래픽을 차단하는 것은 그렇게 제한적이지 않습니다.
한계는 클라이언트 또는 위치별로 배치하거나 서버 자체에 넣을 수 있습니다. 하드 제한을 사용할 수 있으며, 이는 해제 될 때까지 요청을 허용하지 않거나 시간 동안 요청 수를 스로틀로 스로틀로 만들 수 있습니다. 마지막으로, 사용자 그룹에 대해 다른 한계를 설정할 수도 있습니다.
WP 튜토리얼에는 WordPress API의 요금 제한에 대한 훌륭한 안내서가 있습니다.
9. 보안 헤더를 사용하십시오
보안 헤더는 브라우저에 사이트의 컨텐츠 및 연결을 처리하는 방법을 지시함으로써 추가 보호 계층을 제공합니다. API가 프론트 엔드 앱 또는 외부 서비스와 상호 작용할 때이 헤더는 일반적인 웹 취약점을 완화하는 데 도움이됩니다.

구현해야 할 중요한 보안 헤더는 다음과 같습니다.
- Content-Security-Policy : API로 연결된 프론트 엔드에서 실행할 수있는 스크립트 컨트롤.
- X-Content-Type-Options : 브라우저가 파일을 다른 MIME 유형으로 해석하는 것을 방지하기 위해 NOSNIFF로 설정하십시오.
- X- 프레임-옵션 : Deny 또는 Sameorigin을 사용하면 사이트가 iframe에 포함되는 것을 금지함으로써 클릭 재킹을 방지 할 수 있습니다.
- 엄격한 트랜스 포트 보안 : 향후 요청에 대한 HTTPS를 시행합니다.
.htaccess와 같은 서버 파일 또는 헤더 보안 고급과 같은 보안 플러그인을 통해 Header () 함수를 통해 PHP를 사용하여 보안 헤더를 추가 할 수 있습니다. 보안 헤더에 대해 자세히 알아보십시오.
10. 허용 IP 주소를 허용합니다
민감한 또는 관리자 엔드 포인트에 대한 액세스를 제어하는 또 다른 방법은 사전 정의 된 IP 주소 또는 범위로 제한하는 것입니다. 이것은 알려지지 않은 출처의 무단 요청에 대한 간단하지만 효과적인 장벽으로 작용합니다.
물론, 전제 조건은 API 엔드 포인트에 액세스 할 수 있도록 원하는 장치 및 프로그램의 IP 주소를 알고 있으며 정적을 유지한다는 것입니다. functions.php 및 일부 보안 플러그인을 통해 서버 레벨 (예 : .htaccess, nginx config)에서 allencelist를 구성 할 수 있습니다.
11. 로깅 및 모니터링을 활용하십시오
마지막으로 API 요청, 응답 및 사용자 활동을 기록하는 것은 WordPress API 엔드 포인트를 보호하는 또 다른 훌륭한 도구입니다. 약점을 식별하고 요청 패턴을 모니터링하고 스팟 오류를 모니터링하며 보안 유출 소스를 정확히 찾아 낼 수 있습니다.

이것은 시간이 지남에 따라 보안을 강화하는 데 도움이됩니다. REST API 로그, 서버 액세스 로그 또는 사용자 정의 로깅 기능과 같은 플러그인을 사용할 수 있습니다.
지금 사용자 정의 WordPress API 엔드 포인트를 보호하십시오
WordPress Rest API와 그 점점은 강력하지만 제대로 확보하지 않으면 심각한 위험을 초래할 수 있습니다. 사용하기에 안전하게 사용하려면 다른 층과 다중 프론트 접근법이 필요합니다. 그러나 위에서 보았 듯이 비교적 간단합니다.
간과해서는 안되는 한 가지 측면은 사이트 성능입니다. 잘 최적화 된 사이트는 API를 통해 데이터를 더 빠르게 전달할 수 있으며 서비스 거부 공격 중에 문제 해결에 대한 반응을 유지할 가능성이 높습니다. 쉽고 사용자 친화적 인 사이트 속도를 높이기 위해 WP Rocket!