맨위로가기

웹훅

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

웹훅은 "사용자 정의 HTTP 콜백"으로, 특정 이벤트 발생 시 미리 설정된 URL로 HTTP 요청을 보내도록 설계되었다. 코드 푸시, 댓글 게시 등 다양한 이벤트에 의해 트리거되며, 한 사이트의 이벤트를 다른 사이트의 동작을 호출하는 데 사용된다. 지속적 통합 시스템에서 빌드를 트리거하거나 버그 추적 시스템에 알림을 보내는 등 다양한 사용 사례가 있으며, HTTP를 사용하여 웹 서비스에 쉽게 통합될 수 있다. 웹훅 호출 시 스푸핑 공격과 재생 공격을 방지하기 위해 HTTP 기본 인증, 공유 비밀 키, HMAC 서명, SHA-1 서명, 상호 TLS 인증, IP 주소 제한 등 다양한 인증 기술이 사용된다.

더 읽어볼만한 페이지

  • 웹 기술 - 공용 게이트웨이 인터페이스
    공용 게이트웨이 인터페이스(CGI)는 웹 서버가 외부 프로그램을 실행하기 위한 표준 인터페이스이며, 웹 서버가 클라이언트 요청에 응답하여 프로그램을 실행하고 그 결과를 클라이언트에 전송하는 방식으로 동작한다.
  • 웹 기술 - FastCGI
    FastCGI는 웹 서버와 외부 애플리케이션 간 효율적인 통신을 위한 프로토콜로, CGI의 단점을 보완하여 지속적인 프로세스를 통해 웹 애플리케이션의 성능과 안정성을 향상시킨다.
  • 이벤트 (컴퓨팅) - 메시지 큐
    메시지 큐는 프로세스나 스레드 간 비동기 통신을 제공하여 송신자와 수신자가 동시에 상호 작용할 필요 없이 메시지를 교환하도록 하며, 메시지는 수신자가 검색할 때까지 저장되고 시스템 장애 시 복원력을 제공하지만 보안 취약점, 특정 기업 종속성 등의 논란도 존재한다.
  • 이벤트 (컴퓨팅) - 비동기 입출력
    비동기 입출력은 입출력 완료를 기다리지 않고 다른 작업을 처리하는 방식으로, 완료 시 콜백이나 시그널을 통해 결과를 알려주어 효율적인 자원 활용과 성능 향상을 가져다준다.
  • HTTP - HTTPS
    HTTPS는 HTTP에 보안 기능이 더해진 통신 규약으로, 웹 브라우저와 서버 간 통신을 암호화하여 보안을 강화하지만, 인증서 비용, 서버 부하, 혼합 콘텐츠 문제 등의 단점도 존재한다.
  • HTTP - HTTP 쿠키
    HTTP 쿠키는 웹 서버가 사용자 브라우저에 저장하는 작은 텍스트 파일로, 웹 사이트가 방문 기록, 로그인 정보 등을 기억하여 HTTP의 상태 비저장성을 보완하고 세션 관리, 개인 설정, 사용자 추적 등에 활용되지만 개인 정보 보호 및 보안 문제에 대한 논란이 있다.
웹훅

2. 기능

웹훅은 "사용자 정의 HTTP 콜백"이다.[2] 일반적으로 코드 저장소에 코드를 푸시하거나,[3] 블로그에 댓글이 게시되는 등[5] 다양한 이벤트에 의해 트리거된다.[6] 해당 이벤트가 발생하면 소스 사이트가 웹훅에 대해 구성된 URL로 HTTP 요청을 보낸다. 사용자는 한 사이트에서 발생한 이벤트가 다른 사이트에서 동작을 호출하도록 웹훅을 구성할 수 있다.

일반적인 사용 사례는 지속적 통합 시스템으로 빌드를 트리거하거나[7] 버그 추적 시스템에 알림을 보내는 것이다.[8] 웹훅은 HTTP를 사용하므로 새로운 인프라를 추가하지 않고도 웹 서비스에 통합할 수 있다.[9]

3. 웹훅 알림 인증

클라이언트(원천 웹사이트 또는 애플리케이션)가 타사 사용자의 서버에 웹훅 호출을 할 때, 들어오는 POST 요청은 스푸핑 공격을 방지하기 위해 인증되어야 하며, 재생 공격을 방지하기 위해 타임스탬프가 확인되어야 한다.[10] 클라이언트를 인증하기 위해 다양한 기술이 사용된다.


  • HTTP 기본 인증을 사용하여 클라이언트를 인증할 수 있다.[11]
  • 웹훅은 어떤 유형의 이벤트인지에 대한 정보와 웹훅을 확인하기 위한 공유 비밀 키 또는 디지털 서명을 포함할 수 있다.
  • HMAC 서명을 HTTP 헤더로 포함할 수 있다. 깃허브(GitHub),[12] 스트라이프(Stripe)[13] 및 페이스북(Facebook)[14]은 이 기술을 사용한다.
  • SHA-1을 사용하여 요청에 서명한다. 페이스북(Facebook)은 이 방법을 사용하고 있다.
  • 연결이 설정될 때 상호 TLS 인증을 사용할 수 있다. 그러면 엔드포인트(서버)가 클라이언트의 인증서를 확인할 수 있다.[15]
  • 보내는 측은 요청이 전송될 IP 주소의 일정한 목록을 유지하도록 선택할 수 있다. 이것은 그 자체로 충분한 보안 조치는 아니지만, 수신 엔드포인트가 방화벽 또는 NAT 뒤에 있을 때 유용하다.

3. 1. 인증 기술

클라이언트(원천 웹사이트 또는 애플리케이션)가 타사 사용자의 서버에 웹훅 호출을 할 때, 들어오는 POST 요청은 스푸핑 공격을 방지하기 위해 인증되어야 하며, 재생 공격을 방지하기 위해 타임스탬프가 확인되어야 한다.[10] 클라이언트를 인증하기 위해 다양한 기술이 사용된다.

  • HTTP 기본 인증을 사용하여 클라이언트를 인증할 수 있다.[11]
  • 웹훅은 어떤 유형의 이벤트인지에 대한 정보와 웹훅을 확인하기 위한 공유 비밀 키 또는 디지털 서명을 포함할 수 있다.
  • HMAC 서명을 HTTP 헤더로 포함할 수 있다. 깃허브(GitHub),[12] 스트라이프(Stripe)[13] 및 페이스북(Facebook)[14]은 이 기술을 사용한다.
  • SHA-1을 사용하여 요청에 서명한다. 페이스북(Facebook)은 이 방법을 사용하고 있다.
  • 연결이 설정될 때 상호 TLS 인증을 사용할 수 있다. 그러면 엔드포인트(서버)가 클라이언트의 인증서를 확인할 수 있다.[15]
  • 보내는 측은 요청이 전송될 IP 주소의 일정한 목록을 유지하도록 선택할 수 있다. 이것은 그 자체로 충분한 보안 조치는 아니지만, 수신 엔드포인트가 방화벽 또는 NAT 뒤에 있을 때 유용하다.

참조

[1] Citation Web hook to revolutionize the web http://progrium.com/[...] 2007-05-03
[2] 웹사이트 Webhooks https://developer.at[...] Atlassian 2019-09-24
[3] Github About Webhooks - Github Help https://help.github.[...]
[4] 웹사이트 What are Webhooks? https://viasocket.co[...]
[5] WordPress WordPress Webhooks http://en.support.wo[...]
[6] 웹사이트 Use Cases for Webhooks https://webhook-test[...]
[7] Citation Jenkins GitHub Commit Hooks HOWTO http://wiki.cloudbee[...]
[8] Google Google Project Hosting - Post-Commit Web Hooks https://code.google.[...]
[9] 웹사이트 What are WebHooks and How Do They Enable a Real-time Web? http://blog.programm[...]
[10] 웹사이트 Why Verify https://docs.svix.co[...] Svix Inc. 2021-09-12
[11] 웹사이트 DocuSign Connect Now Includes Basic Authentication Support https://www.docusign[...] DocuSign, Inc. 2017-11-16
[12] 웹사이트 Securing your webhooks https://docs.github.[...] Github, Inc 2021-09-12
[13] 웹사이트 Checking Webhook Signatures https://stripe.com/d[...] Stripe, Inc 2019-05-12
[14] 웹사이트 Getting Started - Graph API - Documentation - Facebook for Developers https://developers.f[...] Facebook, Inc. 2019-05-12
[15] 웹사이트 Mutual TLS: Stuff you should know https://www.docusign[...] DocuSign, Inc. 2020-01-15
[16] Citation Web hook to revolutionize the web http://progrium.com/[...] 2007-05-03
[17] 웹사이트 Webhooks https://developer.at[...] Atlassian 2019-09-24
[18] Github About Webhooks - Github Help https://help.github.[...]
[19] WordPress WordPress Webhooks http://en.support.wo[...]
[20] Citation Jenkins GitHub Commit Hooks HOWTO http://wiki.cloudbee[...]
[21] 웹사이트 What are WebHooks and How Do They Enable a Real-time Web? http://blog.programm[...]
[22] 웹사이트 DocuSign Connect Now Includes Basic Authentication Support https://www.docusign[...] DocuSign, Inc. 2020-01-15
[23] 웹사이트 Checking Webhook Signatures https://stripe.com/d[...] Stripe, Inc 2019-05-12
[24] 웹사이트 Getting Started - Graph API - Documentation - Facebook for Developers https://developers.f[...] Facebook, Inc. 2019-05-12
[25] 웹사이트 Mutual TLS: Stuff you should know https://www.docusign[...] DocuSign, Inc. 2020-01-15



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com