authentication - 如何验证 post-receive hook 请求实际上来自 github?

标签 authentication github webhooks

Github offers a way当使用 webhooks 更新项目时,让 URL 知道。

如何验证发送到我服务器的 post-receive hook 的帖子实际上来自 github?

我应该检查发件人的 IP 地址还是可以在某处发送身份验证检查?我想确保有人不会试图欺骗假装来自 github 的请求。

一种选择是通过 PubSubHubbub 设置 Hook 并使用 hub.secret创建帖子正文的 SHA1 HMAC 签名的选项。但是,这需要我的服务器设置请求,而不是等待用户在需要时设置对我的站点的接收后回调。我宁愿让用户将我给他们的 URL 粘贴到帖子 url 中。

最佳答案

您可以 ping GitHub's Meta API获取传入服务 Hook 将源自的 IP 地址数组(以 CIDR 表示法),并根据请求的 IP 对它们进行交叉检查:

https://api.github.com/meta

关于authentication - 如何验证 post-receive hook 请求实际上来自 github?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9007030/

相关文章:

angular - 使用 Angular 重定向 URI 回调后从 URL 获取 OAuth token

authentication - 在 ASP.NET MVC5 中使用 Steam 登录

git - 对于git,如何知道网络是否支持ssh或https?

git - 为什么我的 GitHub pull 请求显示不是我提交的提交?

webhooks - Facebook Messenger webhook 由按钮点击触发,但不是由短信触发

php - WebHook 中的无限循环

java - 身份验证方法

Java\Groovy - java.io.IOException : Authentication failure in simple authenticated HTTP request

session - 使用带有 header 重写的 ngrok 时无法创建 cookie

git - 在 github 上查找提交的分支