GitHub 操作:在工作流作业中使用外部操作是否存在安全问题?

sfm*_*940 7 github github-actions

我有一个工作流,通过使用来自someuser以下方面的外部操作来 FTPs 文件:

    - name: ftp deploy
      uses: someuser/ftp-action@master
      with:
        config: ${{ secrets.FTP_CONFIG }}
Run Code Online (Sandbox Code Playgroud)

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

pet*_*ans 4

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

避免这种情况的方法是使用特定版本的操作并检查其代码。您可以使用提交哈希来引用您想要的确切版本,例如ftp-action@efa82c9e876708f2fedf821563680e2058330de3. 如果标签具有发布标签,则可以使用它。例如ftp-action@v1.0.0 ,尽管如此,这可能不那么安全,因为标签可以更改。

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