我有一个工作流程,该工作流程通过使用someuser
中的外部操作来FTP文件:
- name: ftp deploy
uses: someuser/ftp-action@master
with:
config: ${{ secrets.FTP_CONFIG }}
这是一个安全问题吗?例如,someuser
可以更改ftp-action@master
以访问我的secrets.FTP_CONFIG
吗?我应该将他们的操作复制/粘贴到我的工作流程中吗?
答案 0 :(得分:1)
GitHub help page确实提到:
具有存储库写权限的任何人都可以读取和使用机密。
如果某些用户对存储库没有写权限,则应该没有安全问题。
如下所述,您应指定所使用工作流的确切提交,以确保它不会在您不知情的情况下改变其行为。
答案 1 :(得分:1)
如果您使用ftp-action@master
,则每次工作流运行时,它将获取操作的主分支并进行构建。因此,是的,我相信所有者可以更改代码以捕获机密并将其发送到他们控制下的外部服务器。
为避免这种情况,您可以采取的措施是使用特定版本的操作并查看其代码。您可以使用提交哈希来引用所需的确切版本,例如ftp-action@efa82c9e876708f2fedf821563680e2058330de3
。如果标签具有发布标签,则可以使用。例如ftp-action@v1.0.0
虽然,这可能不那么安全,因为可以更改标签。
或者,也许是最安全的方法,是派生操作存储库并引用您自己的存储库副本。 my-fork/ftp-action@master
。