본문 바로가기
Q&A2023년 5월 19일1분 읽기

Webhook 보안 처리 방법

정
정태영
조회 442댓글 1

외부 서비스에서 Webhook을 받을 때 보안적으로 주의할 점이 뭔가요?

댓글 1

김김영삼3년 전

Webhook 보안 체크리스트:

  1. 서명 검증 — 요청이 정말 해당 서비스에서 온 것인지 확인
    // GitHub Webhook 서명 검증
    const crypto = require("crypto");
    const sig = req.headers["x-hub-signature-256"];
    const hmac = crypto.createHmac("sha256", WEBHOOK_SECRET)
    .update(JSON.stringify(req.body)).digest("hex");
    if (sig !== `sha256=${hmac}`) return res.status(401).end();
  2. IP 화이트리스트 — 발신 IP 대역 확인
  3. 타임스탬프 검증 — 오래된 요청 거부 (재전송 공격 방지)
  4. 멱등성 — 같은 이벤트를 여러 번 받아도 안전하게 처리
  5. HTTPS 필수
  6. 비동기 처리 — 즉시 200 응답 후 백그라운드에서 처리
Ctrl+Enter로 등록