Simple Object Access Protocol(SOAP)

SOAP(Simple Object Access Protocol)는 SOA(Service Oriented Architecture) 내에서 웹 서비스를 구현하는 데 사용되는 기반 XML 기반 애플리케이션 프로토콜입니다. SOAP는 주로 HTTP 및 미들웨어 메시징 시스템(JMS, MQ Series, MSMQ, Tuxedo, TIBCO RV)을 통해 전송되지만 SMTP(Simple Mail Transfer Protocol) 및 FTP(File Transfer Protocol)와 같은 다른 프로토콜을 통해 전송될 수도 있습니다.

SOAP 메시지는 일반적으로 다음의 요소를 포함합니다.

  • Envelope: SOAP Envelope는 SOAP 메시지의 근본 요소이자 필수 요소입니다. 기본적으로 전통적인 편지 봉투에 편지가 있는 것처럼 Envelope에는 SOAP 메시지가 포함되어 있습니다.
  • Header: SOAP Header는 선택 사항으로, 있는 경우 인증, 주소 지정 및 라우팅 세부 정보와 같은 애플리케이션 별 정보가 포함되어 있습니다.
  • Body: SOAP Body은 필수 요소로, 호출되는 특정 원격 작업과 교환되는 데이터(매개변수)를 포함하여 전송되는 실제 애플리케이션 메시지를 포함합니다.

SOAP 메시지는 포함된 데이터를 구문 분석하고 적절한 로직을 실행하기 위해 애플리케이션 및 클라이언트에 필요한 정보가 포함되어 있어야 하므로 그 크기가 큰 편입니다. 메시지 크기가 증가하면 서버에서 필요한 처리 또한 증가해 서버의 리소스 소모가 증가하고 전체적인 용량은 감소합니다. 이러한 크기 증가는 SOAP에 구축된 애플리케이션의 성능에 부정적인 영향을 미치고, 메시지를 전송하기 위해 더 많은 네트워크 리소스가 필요하게 됩니다.

SOAP는 XML 기반이므로 XML 중심의 공격 및 취약점에 취약하며, Transport Layer 프로토콜(대체로 HTTP) 과 관련된 공격에도 취약합니다.

SOAP 관련 보안 및 성능 문제를 해결할 수 있는 F5 제품: BIG-IP Application Security Manager