最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Dockerfile的ADD指令實(shí)現(xiàn)遠(yuǎn)程文件的安全校驗(yàn)下載

 更新時(shí)間:2026年04月27日 08:50:18   作者:舞夢(mèng)輝影  
本文主要介紹了Dockerfile的ADD指令實(shí)現(xiàn)遠(yuǎn)程文件的安全校驗(yàn)下載,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

不能通過 ADD 指令實(shí)現(xiàn)遠(yuǎn)程文件的安全校驗(yàn)下載。

因?yàn)樽?Docker 17.05+ 起,ADD 對(duì)遠(yuǎn)程 URL 的支持已被徹底移除。任何形如 ADD https://example.com/file.tar.gz /app/ 的寫法都會(huì)在構(gòu)建時(shí)直接報(bào)錯(cuò):

ADD does not support remote URLs

這不是配置問題,而是 Docker 官方為保障構(gòu)建可重現(xiàn)性、緩存一致性與安全性所作的強(qiáng)制限制。

所以,“用 ADD 實(shí)現(xiàn)安全校驗(yàn)下載”這一前提本身不成立——ADD 既無法下載,也不提供校驗(yàn)?zāi)芰?/strong>(無哈希驗(yàn)證、無簽名檢查、無證書校驗(yàn)、無權(quán)限控制)。

真正可行且推薦的做法是:放棄 ADD 下載,改用 RUN + curl/wget 顯式下載 + 校驗(yàn) + 清理。

? 安全校驗(yàn)下載的正確寫法(推薦)

使用 curl 下載并校驗(yàn) SHA256

RUN set -eux; \
    curl -fsSL "https://example.com/app-v2.1.0.tar.gz" -o /tmp/app.tar.gz; \
    echo "a1b2c3d4...  /tmp/app.tar.gz" | sha256sum -c -; \
    tar -xzf /tmp/app.tar.gz -C /usr/local/; \
    rm -f /tmp/app.tar.gz
  • set -eux:任一命令失敗即中斷,避免錯(cuò)誤靜默繼續(xù)
  • curl -fsSL:靜默失敗、跟隨重定向、啟用 SSL
  • sha256sum -c -:從標(biāo)準(zhǔn)輸入讀取校驗(yàn)行并驗(yàn)證
  • rm -f:立即清理臨時(shí)文件,不增大鏡像體積

需要 PGP 簽名驗(yàn)證時(shí)(更高安全等級(jí))

RUN set -eux; \
    curl -fsSL "https://example.com/app.tar.gz" -o /tmp/app.tar.gz; \
    curl -fsSL "https://example.com/app.tar.gz.asc" -o /tmp/app.tar.gz.asc; \
    gpg --no-default-keyring --keyring /tmp/pubring.gpg --import trusted-key.pub; \
    gpg --no-default-keyring --keyring /tmp/pubring.gpg --verify /tmp/app.tar.gz.asc /tmp/app.tar.gz; \
    tar -xzf /tmp/app.tar.gz -C /app/; \
    rm -f /tmp/app.tar.gz /tmp/app.tar.gz.asc /tmp/pubring.gpg

?? 注意:需提前將可信公鑰(trusted-key.pub)放入構(gòu)建上下文,或通過 BuildKit --secret 安全掛載。

? 更安全的進(jìn)階實(shí)踐

多階段構(gòu)建:隔離下載與運(yùn)行環(huán)境

# 構(gòu)建階段:下載、校驗(yàn)、解壓、安裝
FROM alpine:latest AS builder
RUN apk add --no-cache curl gnupg tar && \
    curl -fsSL https://example.com/binary -o /tmp/tool && \
    echo "d4e5f6... /tmp/tool" | sha256sum -c - && \
    chmod +x /tmp/tool && \
    mv /tmp/tool /usr/local/bin/tool
# 運(yùn)行階段:零工具、零臨時(shí)文件、最小攻擊面
FROM alpine:latest
COPY --from=builder /usr/local/bin/tool /usr/local/bin/tool
CMD ["tool"]

敏感資源(含 token、私有地址)必須用 BuildKit secret

# 啟用方式:DOCKER_BUILDKIT=1 docker build --secret id=mytoken,src=./token.txt .
RUN --mount=type=secret,id=mytoken \
    curl -H "Authorization: Bearer $(cat /run/secrets/mytoken)" \
         -fsSL https://internal.example.com/secret.bin > /tmp/secret.bin
  • 憑據(jù)僅在當(dāng)前 RUN 中可見,不會(huì)寫入鏡像層
  • 不暴露于 docker history 或鏡像文件系統(tǒng)

? 常見錯(cuò)誤寫法(務(wù)必避免)

  • ADD https://... /app/ → 構(gòu)建直接失敗(Docker ≥17.05)
  • COPY url /dest → COPY 本就不支持 URL,語法錯(cuò)誤
  • RUN curl ... && ADD /tmp/file /dest → 多余,ADD 此時(shí)退化為 COPY,無意義
  • RUN curl -O https://... && sha256sum ... 但不加 set -eux 或 rm → 錯(cuò)誤被忽略、臨時(shí)文件殘留

不復(fù)雜但容易忽略:安全不是靠指令“自動(dòng)完成”,而是靠你顯式控制每一步——下載、校驗(yàn)、權(quán)限、清理、隔離。ADD 的遠(yuǎn)程功能早已退出歷史舞臺(tái),現(xiàn)在該用更透明、更可控的方式構(gòu)建可信鏡像。

到此這篇關(guān)于Dockerfile的ADD指令實(shí)現(xiàn)遠(yuǎn)程文件的安全校驗(yàn)下載的文章就介紹到這了,更多相關(guān)Dockerfile 遠(yuǎn)程文件安全校驗(yàn)下載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java虛擬機(jī)使用jvisualvm工具遠(yuǎn)程監(jiān)控tomcat內(nèi)存

    Java虛擬機(jī)使用jvisualvm工具遠(yuǎn)程監(jiān)控tomcat內(nèi)存

    這篇文章主要介紹了Java虛擬機(jī)使用jvisualvm工具遠(yuǎn)程監(jiān)控tomcat內(nèi)存,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • spring boot springMVC擴(kuò)展配置實(shí)現(xiàn)解析

    spring boot springMVC擴(kuò)展配置實(shí)現(xiàn)解析

    這篇文章主要介紹了spring boot springMVC擴(kuò)展配置實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Java用自定義的類作為HashMap的key值實(shí)例

    Java用自定義的類作為HashMap的key值實(shí)例

    下面小編就為大家?guī)硪黄狫ava用自定義的類作為HashMap的key值實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • 詳解Java?POI?excel自定義設(shè)置單元格格式

    詳解Java?POI?excel自定義設(shè)置單元格格式

    這篇文章主要介紹了Java?POI?excel設(shè)置單元格格式,自定義設(shè)置,設(shè)置單元格格式:來源_formats,更多數(shù)據(jù)類型從formats里面發(fā)現(xiàn),需要的朋友可以參考下
    2024-01-01
  • java 壓縮圖片(只縮小體積,不更改圖片尺寸)的示例

    java 壓縮圖片(只縮小體積,不更改圖片尺寸)的示例

    這篇文章主要介紹了java 如何壓縮圖片體積,幫助大家更好的利用Java處理圖片,應(yīng)對(duì)特殊情況,感興趣的朋友可以了解下
    2020-10-10
  • Java 中 String、StringBuffer、StringBuilder 的區(qū)別

    Java 中 String、StringBuffer、StringBuilder 的區(qū)別

    本文主要介紹了Java 中 String、StringBuffer、StringBuilder 的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05
  • spring5新特性全面介紹

    spring5新特性全面介紹

    本文將全面介紹 Spring 5。我將介紹 Java SE 8 和 Java EE 7 API 的基準(zhǔn)升級(jí)、Spring 5 的新反應(yīng)式編程模型、HTTP/2 支持,以及 Spring 通過 Kotlin 對(duì)函數(shù)式編程的全面支持。
    2020-10-10
  • SpringBoot實(shí)現(xiàn)接受文件和對(duì)象

    SpringBoot實(shí)現(xiàn)接受文件和對(duì)象

    SpringBoot中接受文件和對(duì)象的場(chǎng)景,推薦使用`multipart/form-data`格式,后端可以通過接受實(shí)體并將文件放入對(duì)象屬性中來處理數(shù)據(jù),使用`@Validated`注解進(jìn)行參數(shù)校驗(yàn)是可行的,但要注意不要與`@RequestBody`注解同時(shí)使用
    2025-12-12
  • Spring Boot使用模板引擎JSP實(shí)例解析

    Spring Boot使用模板引擎JSP實(shí)例解析

    這篇文章主要介紹了Spring Boot使用模板引擎JSP實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java編程之內(nèi)置觀察者模式實(shí)例詳解

    Java編程之內(nèi)置觀察者模式實(shí)例詳解

    這篇文章主要介紹了Java編程之內(nèi)置觀察者模式,結(jié)合實(shí)例形式較為詳細(xì)的分析了java內(nèi)置觀察者模式的原理、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-08-08

最新評(píng)論

新营市| 东乌珠穆沁旗| 洱源县| 化州市| 遂川县| 汾西县| 苗栗县| 时尚| 浪卡子县| 宣威市| 安庆市| 汾阳市| 华亭县| 安新县| 隆回县| 平顺县| 沅陵县| 紫阳县| 抚顺市| 十堰市| 永宁县| 乐东| 青海省| 鹿泉市| 青冈县| 南木林县| 密云县| 额济纳旗| 河南省| 宁南县| 玉溪市| 仲巴县| 博湖县| 民丰县| 甘肃省| 剑川县| 茂名市| 明溪县| 柳江县| 台前县| 平遥县|