小编Bah*_*mas的帖子

composer.lock 如何保护你的项目的恶意依赖

在我的项目中,我检查了github上的composer.lock文件。假设我需要在 composer.json 中有一个健康的依赖项,例如:

"require": {
    "foo/bar": "v3.0"
  },
Run Code Online (Sandbox Code Playgroud)

在我调用composer install之后,会创建一个 composer.lock 文件。

"packages": [
        {
            "name": "foo/bar",
            "version": "v3.0",
            "source": {
                "type": "git",
                "url": "https://github.com/foo/bar.git",
                "reference": "bbafb0edb791b23220563d113d00371ea42aedaa"
            },
            "type": "project",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Mr.Foo",
                    "email": "mr.foo@bar.de"
                }
            ],
            "time": "2019-09-30T12:13:55+00:00"
        }
Run Code Online (Sandbox Code Playgroud)

假设拥有 foo/bar 存储库的攻击者将删除 v3.0 标签。攻击者会为 v3.0 命名一个不同的提交。有人可以确认composer install将始终检查 composer.lock 安装依赖项吗?如果我在没有composer.lock文件的情况下运行composer install,composer 将创建一个带有新引用(提交 ID)的新 .lock 文件。如果我使用composer.lock文件运行composer install,composer 将坚持提交 ID(“reference”:“bbafb0edb791b23220563d113d00371ea42aedaa”,旧版 …

php git-tag composer-php

4
推荐指数
1
解决办法
690
查看次数

标签 统计

composer-php ×1

git-tag ×1

php ×1