对于 GitLab WebHook,如何确定请求来自 GitLab?

For GitLab WebHook, how to make sure the request is from GitLab?

GitLab 文档在这里:https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/web_hooks/web_hooks.md

我尝试了什么:

  1. request.hostname: 主机名可以伪造吗?
  2. request.ip:但是我不知道gitlab的ips,以后可能会变
  3. 我在创建 webhook 时试图找到类似 github 的 Secret 的东西,秘密可用于验证请求的主体,但没有任何东西
  4. https:有帮助吗?

那么如何确定请求来自GitLab呢?有什么好方法吗?

您可以包含一个秘密令牌,您只在 gitlab 前端输入它并且不为其他人所知,然后在每次请求时检查该令牌。

当与 https 一起使用时,这可以作为 cgi 参数添加到 URL 末尾的 ?token=somesecretvalue 到 webhook。