피드로 돌아가기
Mastering Webhook Signature Verification in Local Dev
Dev.toDev.to
Backend

Raw Body 보존과 안정적 Endpoint 확보를 통한 Webhook 검증 최적화

Mastering Webhook Signature Verification in Local Dev

Anonymily2026년 6월 23일6intermediate

Context

HMAC 기반 Webhook Signature 검증 과정에서 Body Parser에 의한 페이로드 변형으로 인한 400 Bad Request 빈번 발생. 로컬 개발 환경의 가변적 Tunnel URL과 시간 동기화 이슈로 인해 반복적인 설정 수정 및 디버깅 공수 증가.

Technical Solution

  • JSON.stringify 과정에서 발생하는 공백 및 키 순서 변경 방지를 위해 Raw Buffer를 직접 캡처하는 미들웨어 설계
  • Express의 verify 콜백을 활용하여 파싱 전 원본 바이트 데이터를 req.rawBody에 할당하는 구조 채택
  • 로컬/운영 환경별 Secret Key 분리 관리 및 NTP 동기화를 통한 Replay Attack 방지용 Timestamp 검증 오류 해결
  • SSE 기반의 Stable Named Endpoint를 도입하여 Tunnel 재시작 시 발생하는 URL 변경 및 대시보드 재설정 루프 제거
  • 오프라인 상태에서도 요청을 캡처하고 재전송하는 Replay 메커니즘을 통한 테스트 사이클 단축

1. Webhook 처리 시 Body Parser 적용 전 Raw Body Buffer를 별도 보관하고 있는지 확인

2. 환경 변수에 로컬 테스트용 Secret과 프로덕션 Secret이 정확히 구분되어 있는지 검토

3. 시스템 클럭의 NTP 동기화 상태를 점검하여 Timestamp 기반 검증 실패 가능성 제거

4. 반복적인 Tunnel URL 변경 방지를 위해 고정 엔드포인트 제공 도구 도입 검토

원문 읽기