• 请不要在回答技术问题时复制粘贴 AI 生成的内容
DinoStray
V2EX  ›  程序员

给客户 docker 镜像, 会导致源码泄露么?

  •  
  •   DinoStray · Dec 24, 2020 · 7149 views
    This topic created in 2144 days ago, the information mentioned may be changed or developed.
    1. 使用 docker 会导致源码泄露么? 比如把 docker 镜像直接给客户
    2. 如果默认会, 那我使用二阶构建, 也还是会泄露么?
    25 replies  •  2020-12-25 11:29:18 +08:00
    wfhtqp
    wfhtqp
    Dec 24, 2020
    1
    就看你的镜像里包不包含源码
    manami
    manami
    Dec 24, 2020
    2
    给了别人的东西安全都是没保证的,看你的代码值不值钱了
    jones2000
    jones2000
    Dec 24, 2020
    3
    编程成 2 进制执行文件发布。
    DinoStray
    DinoStray
    OP
    Dec 24, 2020
    4
    @wfhtqp 包含的, 源码在 DockerFIle 中构建
    eslizn
    eslizn
    Dec 24, 2020
    5
    @DinoStray 直接 exec 进去就能捞出来
    DinoStray
    DinoStray
    OP
    Dec 24, 2020
    6
    @eslizn 如果二阶构建呢
    x66
    x66
    Dec 24, 2020
    7
    如果你在外面 build 好了之后,Dockerfile 里面只做 ADD 制成品的话是不会泄露的。
    当然 artifact 可以反编译这又是另一回事了。
    ixx
    ixx
    Dec 24, 2020
    8
    dockerfile 构建没问题 近一点看你的 dockerfile 里管理写的 有没有将源码 copy 到镜像里 比如 go 项目你只把编译后的产出复制到镜像里 那镜像中是不会有源码的
    ixx
    ixx
    Dec 24, 2020
    9
    @ixx #8 dockerfile 构建没问题 重点看你的 dockerfile 里怎么写的 有没有将源码 copy 到镜像里 比如 go 项目你只把编译后的产出复制到镜像里 那镜像中是不会有源码的 如果直接复制源码到镜像进执行 那就不行了 几层构建都不行
    xuanbg
    xuanbg
    Dec 24, 2020
    10
    2 进制也能反汇编。总之,东西到了人家手里,就不受你的控制啦。安全?保密?不存在的!
    zoharSoul
    zoharSoul
    Dec 24, 2020
    11
    这个问题与 docker 无关
    randomuuid
    randomuuid
    Dec 24, 2020
    12
    只有 2 进制泄漏难度大些,但也不是不可能。
    index90
    index90
    Dec 24, 2020
    13
    二阶段构建不会
    namelosw
    namelosw
    Dec 24, 2020 via iPad
    14
    你没说你的技术栈和你具体怎么做的。脚本一般明文,字节码一般比较好反编译,二进制比较难。还有就是 ignore 掉该 ignore 的
    index90
    index90
    Dec 24, 2020
    15
    话说个人觉得多阶段构建,按照 docker 目前给出的功能非常鸡肋。
    1. 没有编译缓存( layer 缓存不算)
    2. 多阶段构建的中间产物不好清理,经常导致构建机爆磁盘
    3. dockerfile 中构建说是为了确保一致性,但软件制品质量是通过测试保证的,只要确保在流水线上二进制程序与容器打包产出,没有必要在 dockerfile 中构建
    4. 可以在 builder 镜像中构建,然后在组装到输出镜像
    whileFalse
    whileFalse
    Dec 24, 2020
    16
    好歹说语言啊
    WaldenHorizon
    WaldenHorizon
    Dec 24, 2020
    17
    二阶构建 只 copy 可执行程序 不会暴露源码
    draguo
    draguo
    Dec 24, 2020
    18
    跟盗版游戏一样,要是收益足够高就能破解
    Suddoo
    Suddoo
    Dec 24, 2020
    19
    只 ADD 可执行文件,问题应该不大吧
    mmrx
    mmrx
    Dec 24, 2020❤️1
    20
    核心的、值钱的逻辑建议放到你的服务上,docker 内的代码可以做个转发
    接口做好认证啥的,这样即使别人拿到源码也不会拿到你的核心竞争力
    felixcode
    felixcode
    PRO
    Dec 24, 2020
    21
    这边在问源码会不会泄漏,那边在答二进制会不会被反编译 /破解。
    julyclyde
    julyclyde
    Dec 25, 2020
    22
    你这个提问,让我感觉
    你其实本来就知道会泄露,只是想来追求心里安慰的
    frandy
    frandy
    Dec 25, 2020
    23
    1.会
    2.看语言,一些编译成二进制的语言逆向比较困难,像 java 这种编译成字节码的,如果没有做混淆和加固,就很容易。
    leekafai
    leekafai
    Dec 25, 2020
    24
    合同限制
    szkoda
    szkoda
    Dec 25, 2020
    25
    @DinoStray #6 就认为你是 golang 语言 吧,如果你一阶段拉代码编译,二阶段只是 copy 执行文件,那么可以起到保护源码的作用,一阶段的产出是一个匿名镜像而已,multi-stage 就该这么玩, 但这个和外面 build 好,Dockerfile 里面只做 ADD 是一样的效果。

    不过你这么交付给客户,防君子不防小人,反编译而已,问问公司有没有专门的安全工具吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1651 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 10:39 · PVG 18:39 · LAX 02:39 · JFK 05:39
    ♥ Do have faith in what you're doing.