Guida secret

Trovare secret esposti nelle app mobili

Ogni valore nel client è leggibile; `.env` o offuscamento non lo proteggono.

LaunchLint Academy

17 min di letturaRevisionato dal team editoriale di LaunchLint
progetto mobile con chiave esposta, proxy sicuro e rotazione
Ogni valore distribuito nel client mobile va considerato leggibile. `.env`, EAS Secrets o offuscamento non proteggono un valore incorporato.
TL;DR

La risposta breve

  • Ogni valore distribuito nel client mobile va considerato leggibile. `.env`, EAS Secrets o offuscamento non proteggono un valore incorporato.
  • Separa identificatori pubblici e credenziali private, sposta i privilegi sul server e ruota ogni secret esposto.
  • Questa checklist non è un controllo una tantum. Eseguila prima del primo upload, dopo modifiche rilevanti a dipendenze o configurazione e subito prima della pubblicazione. Sviluppo, prodotto e responsabile della console devono valutare lo stesso build. I segnali statici sono riproducibili, ma non dimostrano runtime o risposte backend. Abbinali ai test dell'artefatto firmato, alle dichiarazioni ufficiali e a una decisione tracciata.

1. Inventariare i secret

Elenca chiavi, credenziali, token, firma e identificatori con responsabile.

Tratta inventariare i secret come una proprietà verificabile del candidato esatto. Collega la decisione al file, al campo dello store o a un test riproducibile. Separa risultato previsto e osservato, assegna un responsabile e ferma la pubblicazione finché resta una contraddizione di sicurezza o review.

Prove per approvare la release

  • Stato di produzione di inventariare i secret identificato
  • File o campo responsabile collegato
  • Controllo ripetuto su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni dubbio ha responsabile e data
  • Prova senza secret o dati personali

2. Controllare la cronologia

Cerca codice, configurazione, CI, esempi, asset, patch e Git.

Tratta controllare la cronologia come una proprietà verificabile del candidato esatto. Collega la decisione al file, al campo dello store o a un test riproducibile. Separa risultato previsto e osservato, assegna un responsabile e ferma la pubblicazione finché resta una contraddizione di sicurezza o review.

Prove per approvare la release

  • Stato di produzione di controllare la cronologia identificato
  • File o campo responsabile collegato
  • Controllo ripetuto su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni dubbio ha responsabile e data
  • Prova senza secret o dati personali

3. Separare build e runtime

Un secret resta server-side solo se non viene scritto nel client.

Tratta separare build e runtime come una proprietà verificabile del candidato esatto. Collega la decisione al file, al campo dello store o a un test riproducibile. Separa risultato previsto e osservato, assegna un responsabile e ferma la pubblicazione finché resta una contraddizione di sicurezza o review.

Prove per approvare la release

  • Stato di produzione di separare build e runtime identificato
  • File o campo responsabile collegato
  • Controllo ripetuto su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni dubbio ha responsabile e data
  • Prova senza secret o dati personali

4. Trattare le variabili pubbliche

`EXPO_PUBLIC_` ed equivalenti sono leggibili nel bundle.

Tratta trattare le variabili pubbliche come una proprietà verificabile del candidato esatto. Collega la decisione al file, al campo dello store o a un test riproducibile. Separa risultato previsto e osservato, assegna un responsabile e ferma la pubblicazione finché resta una contraddizione di sicurezza o review.

Prove per approvare la release

  • Stato di produzione di trattare le variabili pubbliche identificato
  • File o campo responsabile collegato
  • Controllo ripetuto su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni dubbio ha responsabile e data
  • Prova senza secret o dati personali

5. Spostare i privilegi

Chiavi private e azioni admin passano da un backend autenticato.

Tratta spostare i privilegi come una proprietà verificabile del candidato esatto. Collega la decisione al file, al campo dello store o a un test riproducibile. Separa risultato previsto e osservato, assegna un responsabile e ferma la pubblicazione finché resta una contraddizione di sicurezza o review.

Prove per approvare la release

  • Stato di produzione di spostare i privilegi identificato
  • File o campo responsabile collegato
  • Controllo ripetuto su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni dubbio ha responsabile e data
  • Prova senza secret o dati personali

6. Limitare le chiavi pubbliche

Restringi per identità, dominio, API, quota e ambiente.

Tratta limitare le chiavi pubbliche come una proprietà verificabile del candidato esatto. Collega la decisione al file, al campo dello store o a un test riproducibile. Separa risultato previsto e osservato, assegna un responsabile e ferma la pubblicazione finché resta una contraddizione di sicurezza o review.

Prove per approvare la release

  • Stato di produzione di limitare le chiavi pubbliche identificato
  • File o campo responsabile collegato
  • Controllo ripetuto su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni dubbio ha responsabile e data
  • Prova senza secret o dati personali

7. Ruotare e analizzare

Revoca, sostituisci e controlla l'uso; nascondere il nome non basta.

Tratta ruotare e analizzare come una proprietà verificabile del candidato esatto. Collega la decisione al file, al campo dello store o a un test riproducibile. Separa risultato previsto e osservato, assegna un responsabile e ferma la pubblicazione finché resta una contraddizione di sicurezza o review.

Prove per approvare la release

  • Stato di produzione di ruotare e analizzare identificato
  • File o campo responsabile collegato
  • Controllo ripetuto su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni dubbio ha responsabile e data
  • Prova senza secret o dati personali

8. Automatizzare il gate

Combina pattern, entropia, allowlist e verifica umana.

Tratta automatizzare il gate come una proprietà verificabile del candidato esatto. Collega la decisione al file, al campo dello store o a un test riproducibile. Separa risultato previsto e osservato, assegna un responsabile e ferma la pubblicazione finché resta una contraddizione di sicurezza o review.

Prove per approvare la release

  • Stato di produzione di automatizzare il gate identificato
  • File o campo responsabile collegato
  • Controllo ripetuto su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni dubbio ha responsabile e data
  • Prova senza secret o dati personali

Domande frequenti

`.env` è sicuro?

No se il valore finisce nel client.

EAS Secrets protegge?

Il build, non un valore incorporato.

L'offuscamento basta?

No. Non sostituisce la gestione secret.

Cosa fare dopo il finding?

Revoca, ruota, indaga e riprogetta.

Fonti ufficiali

Questo articolo usa le seguenti fonti primarie ufficiali. Le regole possono cambiare: verifica sempre la versione corrente prima dell’invio.