피드로 돌아가기
Building Correct Payment Infrastructure: Webhooks, Reconciliation, and Records
Dev.toDev.to
Backend

결제 무결성 보장을 위한 Webhook 보안 및 Reconciliation 설계 최적화

Building Correct Payment Infrastructure: Webhooks, Reconciliation, and Records

NARESH PATURI2026년 6월 15일6intermediate

Context

결제 시스템의 Webhook 처리와 정산 과정에서 발생하는 보안 취약점 및 부동 소수점 오차로 인한 데이터 불일치 문제 분석. 단순 합계 기반 정산 방식이 개별 레코드의 오류를 은폐하여 정밀한 추적이 불가능한 한계 노출.

Technical Solution

  • Constant-time comparison 함수 도입을 통한 Timing Attack 원천 차단
  • Timestamp 윈도우 검증 및 Event-ID 기반 De-duplication을 통한 Replay Attack 방어
  • Binary Floating Point 대신 Decimal 기반 산술 연산 적용으로 화폐 단위 정밀도 확보
  • 단순 합계 비교가 아닌 Key-based Exact Match 후 Heuristic Pass를 수행하는 2단계 정산 아키텍처 설계
  • CI 파이프라인에 Reconciliation 프로세스를 통합하여 정산 불일치 시 즉각적인 빌드 실패 유도

- Webhook 검증 시 단순 문자열 비교 대신 hmac.compare_digest 등 상수 시간 비교 함수 사용 여부 확인 - 결제 금액 계산 시 float 타입 사용을 금지하고 Decimal 또는 Integer Minor Unit으로 처리하는지 검토 - 정산 로직 설계 시 총액 비교가 아닌 개별 트랜잭션 ID 기반의 Record-level 매칭 구조 적용 - Replay Attack 방지를 위해 요청 타임스탬프의 허용 오차 범위(Tolerance Window) 설정 및 중복 제거 로직 구현

원문 읽기