返回资讯中心
外部精选
软件工程
#开发者实时流

Flutter updates required to remediate the eMudhra certificate compromise

.color-scheme--dark .devsite-nav-icon[data-icon="alpha"]::before {

Hacker News 最新bitneuker2026/11/4 · 今天30 分钟阅读

以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。

); }

.color-scheme--dark .devsite-nav-icon[data-icon="alpha"]::before { content: url(data:image/svg+xml;utf8,); }

.devsite-nav-icon[data-icon="beta"]::before { content: url(data:image/svg+xml;utf8,); }

.color-scheme--dark .devsite-nav-icon[data-icon="beta"]::before { content: url(data:image/svg+xml;utf8,); }

.firebase-platform-label { font: 500 12px/24px 'Google Sans', sans-serif; } /* Full-page platform selector dropdown / / Note: use menu variables in _elements.html file */

.full-page-selector-dropdown { border: none; position: relative; float: left; display: inline-block; }

.full-page-selector-dropdown > .ds-selector-tabs { display: none; position: absolute; min-width: 160px; z-index: 1; }

.full-page-selector-dropdown:hover .ds-selector-tabs { display: block; margin: 0; }

.full-page-selector-dropdown:hover .kd-tabbutton { display: block; border: none; height: inherit; text-align: left; }

.full-page-selector-dropdown:hover .kd-buttonbar { border: none; height: inherit; }

.full-page-selector-dropdown h3:hover { color: var(--tenant-inverted-text-color); background-color: #039be5; }

.full-page-selector-dropdown:hover .devsite-overflow-menu-button { display: none; }

img.white-bg { padding: 5px; border-radius: 2px; background-color: #fff; }

body, table { font-variant-ligatures: no-contextual; }

/* DEVSITE CARDS ON NON-LANDING-PAGES OF FIRESITE */ .firebase-guide-cards .devsite-landing-row-item { border: 1.5px solid var(--devsite-ref-palette--grey300); border-radius: 8px; padding: 1.5rem; }

.color-scheme--dark .firebase-guide-cards .devsite-landing-row-item { border: 1.5px solid var(--devsite-ref-palette--grey800); }

/* Remove default landing-row padding to avoid a gap above the cards,

  • while still maintaining a gap between consecutive rows that matches
  • the gap between cards. */ .firebase-guide-cards { padding: 0 !important; }

.firebase-guide-cards, div:has(> .firebase-guide-cards) { margin-bottom: var(--devsite-landing-row-item-gap, 24px); }

.firebase-ai-prompt-cards .devsite-landing-row-item { border: 4px solid #7e57c2; border-radius: 8px; padding: 1.5rem; }

.color-scheme--dark .firebase-ai-prompt-cards .devsite-landing-row-item { border: 4px solid #b39ddb; }

.firebase-ai-prompt-cards h3 { display: flex; align-items: center; font-size: 20px !important; }

.firebase-ai-prompt-cards h3 .material-icons { color: #7e57c2; margin-right: 8px; font-size: 20px; }

.color-scheme--dark .firebase-ai-prompt-cards h3 .material-icons { color: #b39ddb; }

.firebase-ai-prompt-cards .devsite-landing-row-item-description { font-size: 14px; }

.firebase-ai-prompt-cards ol { padding-left: 1.2rem; }

.firebase-ai-prompt-cards pre { font-size: 12px; }

.firebase-ai-prompt-cards code { font-size: 12px; }

.firebase-ai-prompt-cards { padding: 0 !important; }

/* FIRESITE FIX - FONT STYLE -- TO BE MOVED INTO SITE'S SCSS IN FUTURE CL */ :root strong { font-weight: 700; }

/* FIRESITE FIX - HEADING SIZE -- TO BE MOVED INTO SITE'S SCSS IN FUTURE CL / / H3 to H1 HEADINGS ARE SCALED IN EQUAL 6px JUMPS BASED ON THE H4, WHICH IS JUST A BIT BIGGER THAN THE PRIMARY FONT SIZE OF 16px */ :root h1 { font-size: 38px; }

:root h2 { font-size: 32px; }

:root h3 { font-size: 26px; }

:root h4 { font-size: 20px; }

/* PRIMARY FONT SIZE IS 16px - THIS MAKES THE H5 HEADINGS THE SAME SIZE BUT BOLD */ :root h5 { font-size: 16px; font-weight: 700; }

/* FIRESITE FIX - TABLE HEADER ROW COLORS FOR DARK MODE -- TO BE MOVED INTO SITE'S SCSS IN FUTURE CL */ .color-scheme--dark th { background-color: var(--devsite-ref-palette--grey800); }

.color-scheme--dark .alt td { background-color: var(--devsite-ref-palette-tenant--firebase-navy900); }

/* FIRESITE FIX - NUMBERED-HEADING FONT COLOR -- TO BE MOVED INTO SITE'S SCSS IN FUTURE CL */ h2.numbered::before { color: var(--devsite-ref-palette--white); }

/* FIRESITE FIX - CODE BLOCKS LEFT-RIGHT-ALIGNMENT WITH BODY TEXT -- TO BE MOVED INTO SITE'S SCSS IN FUTURE CL */

/* Applies the appropriate corner styling and page margins (default top/bottom from DevSite and custom right/left for Firesite) to the code block */ devsite-code { border-radius: 8px; margin: 16px 0; }

/* Applies the appropriate padding of the content within the code block */ devsite-code pre { padding: 25px; }

/* Applies the appropriate padding of the icons in the top-right corner of the code block */ devsite-code .devsite-code-buttons-container { right: 0; }

Google utilizza la tecnologia AI per tradurre i contenuti nella tua lingua preferita. Le traduzioni generate dall'AI potrebbero contenere errori.

Firebase

Assistenza

Invia feedback

Aggiornamenti necessari per rimediare alla compromissione del certificato eMudhra

Mantieni tutto organizzato con le raccolte

Salva e classifica i contenuti in base alle tue preferenze.

Il 19 ottobre 2026, Google è venuta a conoscenza di un'autorità di certificazione compromessa (eMudhra). Per risolvere questo problema di sicurezza, abbiamo rilasciato immediatamente patch di sicurezza per diverse aree del nostro ecosistema.

Questa pagina ti aiuta a comprendere i tipi di app interessati e le eventuali azioni richieste per rimediare alla compromissione del certificato eMudhra. Forniamo anche informazioni dettagliate sul problema di sicurezza.

A causa della natura di questo problema di sicurezza, sono stati interessati molti tipi diversi di app. Se il tipo della tua app è elencato qui, è probabile che sia interessato. Consulta la sezione applicabile per scoprire quali azioni devi intraprendere.

Anche altre piattaforme supportate dalla community sono interessate (ad esempio, app native React destinate alle piattaforme Apple e che utilizzano Cloud Firestore).

Le app Flutter sono state interessate in vari modi. Consulta la sezione applicabile per capire quali azioni devi intraprendere.

Mentre i browser e i sistemi operativi hanno introdotto liste bloccate di emergenza per i certificati intermedi, dart:io su Android, Windows e Linux convalida le catene di certificati TLS utilizzando il proprio motore BoringSSL compilato e non legge le liste bloccate di certificati intermedi del sistema operativo. Per maggiori dettagli, consulta l'avviso di sicurezza di Dart SDK.

Se hai app Flutter o Dart che hanno come target Android, Windows o Linux, segui questi passaggi:

Esegui l'upgrade alle seguenti versioni di Dart e Flutter:

Rifai il deployment dell'app o del file binario. Rifai il deployment delle tue app o dei tuoi file binari Android, Windows e Linux in modo che includano gli aggiornamenti con la correzione di sicurezza.

Dopo aver rifatto il deployment dell'app, devi invitare gli utenti finali ad aggiornare l'app all'ultima versione. Poiché la logica di convalida del certificato TLS è compilata nel file binario dell'applicazione, gli aggiornamenti del sistema operativo da soli non correggono le build dell'applicazione installate in precedenza.

Se hai un'app Flutter che ha come target piattaforme Apple o Windows e la tua app utilizza Cloud Firestore, procedi nel seguente modo:

Determina la versione del plug-in appropriata per la tua app. Consulta la tabella seguente per determinare quale versione del plug-in con la correzione di sicurezza è appropriata per la tua app.

Plug-in FlutterFire per Cloud Firestore (cloud_firestore): iOS, macOS o Windows

Aggiorna l'app. Esegui flutter pub upgrade per aggiornare il plug-in cloud_firestore alla versione appropriata.

Ripubblica l'app. Ripubblica l'app con la versione aggiornata del plug-in (ad esempio, nell'App Store di Apple o nei canali di distribuzione per computer).

Dopo aver ripubblicato l'app, devi invitare gli utenti finali a eseguire l'aggiornamento all'ultima versione dell'app. Poiché il bundle di certificati radice TLS è compilato nel file binario dell'applicazione, gli aggiornamenti del sistema operativo o le modifiche lato server da soli non correggono le build dell'applicazione installate in precedenza.

Se hai un'app per piattaforma Apple nativa (ad esempio iOS, macOS e così via) e la tua app utilizza Cloud Firestore, procedi nel seguente modo:

Determina la versione dell'SDK appropriata per la tua app. Consulta la tabella seguente per determinare quale versione dell'SDK con la correzione di sicurezza è appropriata per la tua app.

SDK Firebase per piattaforme Apple (nello specifico, FirebaseFirestore)

Aggiorna l'app. Segui le istruzioni per il tuo canale di distribuzione:

SPM: aggiorna la versione della dipendenza del pacchetto firebase-ios-sdk in Xcode o Package.swift.

Distribuzione zip: da GitHub Releases, scarica Firebase.zip per la versione appropriata e sostituisci i bundle .xcframework esistenti nel progetto.

Carthage: aggiorna il tuo Cartfile in modo che abbia come target la versione appropriata e aggiorna le dipendenze tramite Carthage.

Ripubblica l'app. Ripubblica l'app con la versione aggiornata dell'SDK (ad esempio, nell'Apple App Store o nei canali di distribuzione per computer).

Dopo aver ripubblicato l'app, devi invitare gli utenti finali a eseguire l'aggiornamento all'ultima versione dell'app. Poiché il bundle di certificati radice TLS è compilato nel file binario dell'applicazione, gli aggiornamenti del sistema operativo o le modifiche lato server da soli non correggono le build dell'applicazione installate in precedenza.

Se hai un'app Unity che ha come target piattaforme Apple o desktop e utilizza Cloud Firestore, segui questi passaggi:

Determina la nuova versione dell'SDK appropriata per la tua app. Consulta la tabella seguente per determinare quale versione dell'SDK con la correzione di sicurezza è appropriata per la tua app.

SDK Firebase per Unity (firebase-unity-sdk): iOS o computer (macOS, Windows, Linux)

Aggiorna l'app. Scarica l'SDK Firebase Unity per la versione appropriata dalla pagina delle release di GitHub, quindi importa i pacchetti aggiornati nel tuo progetto Unity.

Ricostruisci l'app. Ricostruisci il file binario del player.

Ripubblica l'app. Ripubblica l'app con la versione aggiornata dell'SDK (ad esempio, nell'Apple App Store o nei canali di distribuzione per computer).

Dopo aver ripubblicato l'app, devi invitare gli utenti finali a eseguire l'aggiornamento all'ultima versione dell'app. Poiché il bundle di certificati radice TLS è compilato nel file binario dell'applicazione, gli aggiornamenti del sistema operativo o le modifiche lato server da soli non correggono le build dell'applicazione installate in precedenza.

Se hai un'app C++ che ha come target piattaforme Apple o desktop e la tua app utilizza Cloud Firestore, procedi nel seguente modo:

Determina la nuova versione dell'SDK appropriata per la tua app. Consulta la tabella seguente per determinare quale versione dell'SDK con la correzione di sicurezza è appropriata per la tua app.

SDK Firebase per C++ (firebase_cpp_sdk): iOS o computer (macOS, Windows, Linux)

Aggiorna l'app. Scarica l'SDK Firebase C++ per la versione appropriata dalla pagina delle release di GitHub, quindi aggiorna le dipendenze del progetto con le nuove librerie dell'SDK.

Collega e ricompila l'app. Ricompila e ricollega il file binario dell'applicazione.

Ripubblica l'app. Ripubblica l'app con la versione aggiornata dell'SDK (ad esempio, nell'Apple App Store o nei canali di distribuzione per computer).

Dopo aver ripubblicato l'app, devi invitare gli utenti finali a eseguire l'aggiornamento all'ultima versione dell'app. Poiché il bundle di certificati radice TLS è compilato nel file binario dell'applicazione, gli aggiornamenti del sistema operativo o le modifiche lato server da soli non correggono le build dell'applicazione installate in precedenza.

Se hai un'app per Android nativa che utilizza il plug-in Gradle Firebase App Distrib

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →