【发布时间】:2021-02-27 15:09:05
【问题描述】:
我已经设置了一个 github webhook 来与我的 webserver api 对话(服务器是 apache2)。我使用他们帮助页面上指定的有效负载加密安全地检查 github 机密。
当在 web 应用程序的 repo 上推送到 master 时,会通过 <?php exec 触发一个脚本 (deploy.sh)。如果我以 root 身份手动触发此脚本,那么一切都很完美。当然,正常情况下触发脚本的用户是www-data。
我的问题是 www-data 对新仓库进行 git pull 的最佳实践是什么?我大多放弃了执行 exec sudo,但也许就是这样。我在使 www-data 触发 git pull 时面临的众多问题中的一个问题是 ~/.ssh/id_rsa 文件仅针对 root 设置(在 docker 上构建服务器映像时)。它是一个只读的 ssh 密钥。
这是一个遗留应用程序,所以真正让我担心的是,通过一些 php 漏洞利用,有人可以在没有 github 的情况下执行 exec。并从那里升级以获得对 repo 或更糟的读取访问权限。
问题真的是,使用 webhook 更新 Web 应用程序的最佳实践是什么
【问题讨论】:
-
我忘了补充:我看过这个问题stackoverflow.com/questions/10542158/… 但它真的过时了,我不会使用 capistrano
标签: php git security github devops