API 호출이란?

API 호출 또는 API 요청을 통해 한 애플리케이션이 다른 애플리케이션에 데이터 또는 서비스를 요청할 수 있습니다. 대부분의 웹 애플리케이션에서는 정기적으로 API 호출을 수행합니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • API 호출의 정의
  • API 호출이 사용되는 방법 이해하기
  • 공격자가 API 호출을 사용하는 방법 알아보기

관련 콘텐츠


계속 알아보시겠어요?

인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

API 호출이란?

애플리케이션 프로그래밍 인터페이스(API)는 한 프로그램이 다른 프로그램과 상호 작용하는 방식입니다.API 호출은 프로그램들이 상호 작용하는 매개체입니다.API 호출 또는 API 요청은 서비스 또는 정보를 제공하도록 API에 요청하는, 서버로 전송되는 메시지입니다.

Jan이 저녁 식사에 많은 손님을 초대하는 경우 케이터링 회사에 전화하여 파티에 내놓을 요리를 준비해 달라고 요청할 수 있습니다. 덕분에 직접 조리하는 데 드는 시간과 노력을 크게 절약할 수 있습니다. 마찬가지로, 한 애플리케이션에서 필요한 데이터나 기능을 위해 다른 애플리케이션을 "호출"할 수 있습니다. 따라서 개발자는 API를 통해 통합할 수 있는 애플리케이션 기능을 구축하는 데 시간과 노력을 들이지 않아도 됩니다.

오늘날 API는 거의 모든 웹 애플리케이션에 통합되어 있으므로 API 호출은 항상 백그라운드에서 이루어집니다. 누군가가 여행 웹 사이트에서 버스 티켓을 검색한다고 가정해 보겠습니다. 여행 웹 사이트에서는 다양한 버스 회사의 서버에 API 호출을 전송하고 이용 가능한 승차권과 요금에 대한 정보를 다시 받습니다. 사용자 입장에서는 이 과정이 거의 즉각적으로 이루어져야 합니다.

API 호출은 어디로 전달될까요?

API 호출은 클라이언트에서 API 엔드포인트로 이동합니다.API 엔드포인트는 API 호출이 이동하는 장소로, 대부분 웹 애플리케이션과 서버입니다.예를 들어 모바일 클라이언트는 API 엔드포인트인 서버로 이동하는 API 호출을 생성합니다.서버에서는 API 호출을 수신하여 처리하고 요청을 실행한 후 응답을 보냅니다.

앞서의 비유에서 Jan은 케이터링 회사에 전화를 걸 때 전화번호를 누르는 방식으로 전화를 겁니다. 마찬가지로 API 호출은 통합 리소스 식별자(URI)로 연결됩니다.

전화번호가 전화선을 식별하는 것처럼 URI는 리소스를 식별하는 표준화된 방법입니다. 식별된 리소스는 웹 사이트, 애플리케이션, 서버, 이메일 연락처, 심지어 실제 물건일 수도 있습니다.

웹 API의 경우 일반적으로 URI는 uniform resource locator(URL)입니다.URL은 웹 사이트나 서버와 같은 인터넷 위치를 식별하기 위한 URI의 한 유형입니다.URL에는 애플리케이션 계층 프로토콜(예: HTTP)이 포함되어야 합니다.웹 페이지 주소는 " https://www.cloudflare.com/learning" 와 같은 URL로 작성됩니다.API 엔드포인트도 URL입니다.

대부분의 웹 API는 HTTP를 사용하므로 API 엔드포인트의 URL에 포함됩니다.예를 들어, 기본 Cloudflare API 엔드포인트는 " https://api.cloudflare.com/client/v4/" 입니다(자세히 알아보기).HTTP 기반 API 호출은 GET, POST, PUT 등의 HTTP 동사(요청 유형)를 사용하여 API 엔드포인트에서 필요한 서비스 또는 리소스를 나타냅니다.

API 호출은 공격에 어떻게 사용될 수 있을까요?

인터넷에 노출된 모든 것과 마찬가지로 API도 다양한 출처로부터의 공격에 취약합니다. 공격자는 다음과 같은 여러 가지 방법으로 API 호출을 사용하여 API를 공격할 수 있습니다.

  • 서비스 거부(DoS)분산 서비스 거부(DDoS) 공격: 이 유형의 공격은 API의 다른 사용자에 대한 서비스를 거부합니다.공격자는 API 호출로 API를 폭주시키거나 서버를 장시간 묶어두는 방식으로 API 호출을 구조화할 수 있습니다.
  • 취약점 익스플로잇: 공격자는 API의 결함을 악용하여 서버를 속여 공개해서는 안 되는 데이터를 공개하거나, 설계되지 않은 방식으로 수행하거나, 무단 액세스를 허용하는 API 호출을 보내려고 시도할 수 있습니다.

이러한 공격과 기타 공격은 API 서비스를 제공하는 조직에 부정적인 영향을 미칠 수 있습니다.

잘못된 API 호출로부터 API를 보호하는 방법

다음 전략은 API를 안전하게 유지하는 데 도움이 될 수 있습니다.

  • API 엔드포인트 이해 및 추적: 프로덕션 환경에서 모든 API 엔드포인트의 업데이트된 목록을 유지합니다.
  • API 클라이언트 확인: 인증을 통해 API 호출이 합법적인 클라이언트로부터 온 것인지 확인할 수 있습니다.몇 가지 방법이 있지만, 가장 효과적인 방법 중 하나는 상호 TLS로, 각 API 엔드포인트가 공개 키 암호화를 사용하여 서로를 검증하는 인증 방법입니다.
  • API 스키마 유효성 검사: API의 스키마는 API 사용 규칙과 같습니다.API 호출이 스키마를 따르지 않는 경우 API를 악용하려는 시도일 수 있습니다.API 스키마 유효성 검사는 잘못된 API 호출을 식별하고 차단하는 데 도움이 됩니다.
  • DDoS 완화 사용: DDoS 완화 공급자는 과도한 요청을 차단하거나 흡수하여 서버에 과부하가 걸리지 않도록 합니다.Cloudflare도 그러한 공급자 중 하나입니다.

API 보안에 대해 자세히 알아보세요.또는 광범위한 공격으로부터 API를 보호하는 Cloudflare API Shield에 대해 읽어보세요.