Xeo*_*oss 15 authentication github webhooks
Github提供了一种让URL知道何时使用webhook更新项目的方法.
如何验证发送到我服务器的post-receive hook的帖子实际上来自github?
我应该检查发件人的IP地址,还是可以在某处发送身份验证?我想确保有人不会试图欺骗假装来自github的请求.
一种选择是通过PubSubHubbub设置钩子并使用该hub.secret选项创建帖子体的SHA1 HMAC签名.但是,这需要我的服务器设置请求,而不是等待用户在他们想要的时候设置后接收回调到我的网站.我宁愿让用户将我提供的URL粘贴到帖子网址中.
您可以尝试检查Github的请求后IP:207.97.227.253,50.57.128.197,108.171.174.178
看看GitHub关于这个主题的文档:他们建议使用HTTPS和基本身份验证.
具体来说,请使用以下格式设置Payload URL:
https://开头yourUser:yourPass@yoursite.net/path
如果您有多个用户,则需要为每个用户分配不同的用户名和密码.假设他们将该密码保密,您可以相信一个身份验证请求确实来自GitHub和该帐户.
另见:https://github.com/blog/237-basic-auth-post-receives
除了@ mnml的答案之外,第二步可能是调用API并验证给定的信息是否与项目的上次已知提交相匹配.这与OpenID用于验证传递的数据是否有效的过程相同.
所以,首先我可以通过检查IP来打败愚蠢的回复攻击.接下来我可以问github我收到的信息是否正确.
GET /repos/:user/:repo/commits/:sha
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4853 次 |
| 最近记录: |