페이로드 유효성 검사 및 버전 관리

페이로드 유효성 검사

웹훅으로 전송되는 모든 전송 내용에는 전송에 대한 해시 서명이 포함된 X-Hub-Signature 헤더가 있습니다. 서명은 요청 본문의 HMAC 헥스 다이제스트(hexdigest)이며, sha256과 여러분의 시크릿(secret)을 HMAC 키로 사용하여 생성됩니다.

Node.js에서 다음과 같은 함수를 사용하여 Snyk으로부터 오는 요청의 서명을 검증할 수 있습니다.

import * as crypto from 'crypto';

function verifySignature(request, secret) {
  const hmac = crypto.createHmac('sha256', secret);
  const buffer = JSON.stringify(request.body);
  hmac.update(buffer, 'utf8');

  const signature = `sha256=${hmac.digest('hex')}`;

  return signature === request.headers['x-hub-signature'];
}

페이로드 버전 관리

페이로드는 시간이 지남에 따라 발전할 수 있으므로 버전이 지정됩니다. 페이로드 버전은 X-Snyk-Event 헤더의 접미사로 제공됩니다. 예를 들어, project_snapshot/v0은 해당 페이로드가 project_snapshot 이벤트의 v0 버전임을 나타냅니다.

버전 번호는 기존에 있던 필드를 제거하거나 필드 이름을 변경하는 등의 중단되는 변경(Breaking change)이 발생할 때만 증가합니다. 이전에 없던 새로운 필드를 추가하는 것과 같은 추가적인 변경의 경우 버전 번호가 증가하지 않습니다.

circle-exclamation

Last updated