7

我有一个通过使用来自以下的外部操作来 FTP 文件的工作流someuser

    - name: ftp deploy
      uses: someuser/ftp-action@master
      with:
        config: ${{ secrets.FTP_CONFIG }}

这是一个安全问题吗?例如可以someuser更改ftp-action@master为访问我的secrets.FTP_CONFIG? 我应该将他们的操作复制/粘贴到我的工作流程中吗?

4

2 回答 2

4

如果您使用ftp-action@masterthen 每次您的工作流程运行时,它将获取操作的主分支并构建它。所以是的,我相信所有者可以更改代码以捕获秘密并将其发送到他们控制的外部服务器。

为了避免这种情况,您可以采取的措施是使用特定版本的操作并查看其代码。您可以使用提交哈希来引用您想要的确切版本,例如ftp-action@efa82c9e876708f2fedf821563680e2058330de3. 如果标签有发布标签,您可以使用它。例如ftp-action@v1.0.0 ,虽然,这可能不那么安全,因为标签可以更改。

或者,也可能是最安全的方法是分叉操作存储库并引用您自己的副本。my-fork/ftp-action@master.

于 2019-09-13T05:22:50.730 回答
1

GitHub 帮助页面确实提到:

任何对存储库具有写入权限的人都可以读取和使用机密。

如果某些用户没有对存储库的写入权限,则应该没有安全问题。

如下所述,您应该指定您正在使用的工作流的确切提交,以确保它不会在您不知情的情况下更改其行为。

于 2019-09-13T04:35:03.840 回答