dwyl / dwyl/github-backup

Webhook Secret

未关闭
#76 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement question technical
主要语言
Elixir
星标
33
派生
3
PR 合并指标
30 天内没有已合并 PR

描述

When creating a New GitHub Application via https://github.com/settings/apps/new
we are given the _option_ to add a `Webhook Secret`:
![image](https://user-images.githubusercontent.com/194400/37258025-6ac38556-2569-11e8-866f-32f9bc26ff72.png)
While the `Webhook Secret` is "_optional_", I feel it would add good "security layer" to our app.
Otherwise _anyone_ can "spoof" a webhook `POST` request to our app and make an "edit" to someone else's issue.

> Yes, this would be "non-destructive" because the "single-source-of-truth" is still _GitHub_.
But if the person made _multiple_ "malicious" edits they could create quite a lot of spam/noise.

I don't think we need to do this "urgently" while we are using the app _internally_,
but as soon as it's `public` we should consider adding this layer of protection.

How would this work in our Elixir/Phoenix App?
The `ruby` code in the docs: https://developer.github.com/webhooks/securing
should be _fairly_ easy to "translate" to Elixir.

贡献指南

这个仓库没有索引到贡献指南

调研方向

先阅读 issue 中链接的 GitHub webhook 安全文档,然后定位 Elixir/Phoenix 应用的 webhook POST 处理程序。确定处理程序如何在接受 issue 编辑之前验证 GitHub 的 Webhook Secret;当伪造请求被拒绝且真实的 GitHub webhook 仍能正常工作时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
elixir, github
领域
api, backend, security
Issue 类型
功能
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。