Sicurezza ibrida

Checklist sicurezza WebView per app ibride

Una WebView collega contenuto modificabile e capacità native e richiede confini espliciti.

LaunchLint Academy

18 min di letturaEditing e verifica delle fonti: Rene DresselPolitica editoriale
App ibrida protegge WebView, domini e bridge nativo con confini chiari
Una WebView è il confine tra contenuto web e capacità native. Tratta ogni navigazione come input non affidabile.
TL;DR

La risposta breve

Una WebView è il confine tra contenuto web e capacità native. Tratta ogni navigazione come input non affidabile.

  • Limita origin e path, riduci il bridge e prova auth, download, file ed errori nella release firmata.

Prove necessarie per la pubblicazione

Non controllare sicurezza webview nelle app ibride come impostazione isolata. Collegalo a sicurezza WebView nelle app ibride, all’artefatto di produzione firmato e ai valori della console. Annota quale file genera l’impostazione, se un framework o plugin può modificarla durante la build e come hai verificato il valore risolto. Una voce plausibile nel progetto non dimostra che il binario caricato contenga la stessa configurazione.

Separa tre livelli di prova per sicurezza WebView nelle app ibride: configurazione visibile nei file, comportamento su un dispositivo pulito e impostazioni esterne in Apple Developer, App Store Connect o Play Console. Il controllo è affidabile solo quando descrivono lo stesso candidato. Assegna ogni differenza a un responsabile con un criterio di stop.

Prove necessarie per la pubblicazione

  • Valore di produzione per mappare le webview identificato
  • File o impostazione responsabile collegato
  • Configurazione nativa risolta controllata
  • Artefatto firmato provato su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni differenza ha responsabile e criterio di stop

1. Mappare le WebView

Registra URL, navigazione, dati, cookie, download e capacità.

Non controllare mappare le webview come impostazione isolata. Collegalo a sicurezza WebView nelle app ibride, all’artefatto di produzione firmato e ai valori della console. Annota quale file genera l’impostazione, se un framework o plugin può modificarla durante la build e come hai verificato il valore risolto. Una voce plausibile nel progetto non dimostra che il binario caricato contenga la stessa configurazione.

Prove necessarie per la pubblicazione

  • Valore di produzione per mappare le webview identificato
  • File o impostazione responsabile collegato
  • Configurazione nativa risolta controllata
  • Artefatto firmato provato su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni differenza ha responsabile e criterio di stop

2. Definire le origin

Valida schema, host e porta completi.

Non controllare definire le origin come impostazione isolata. Collegalo a sicurezza WebView nelle app ibride, all’artefatto di produzione firmato e ai valori della console. Annota quale file genera l’impostazione, se un framework o plugin può modificarla durante la build e come hai verificato il valore risolto. Una voce plausibile nel progetto non dimostra che il binario caricato contenga la stessa configurazione.

Prove necessarie per la pubblicazione

  • Valore di produzione per definire le origin identificato
  • File o impostazione responsabile collegato
  • Configurazione nativa risolta controllata
  • Artefatto firmato provato su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni differenza ha responsabile e criterio di stop

3. Ridurre i bridge

Esponi solo metodi necessari e valida i messaggi.

Non controllare ridurre i bridge come impostazione isolata. Collegalo a sicurezza WebView nelle app ibride, all’artefatto di produzione firmato e ai valori della console. Annota quale file genera l’impostazione, se un framework o plugin può modificarla durante la build e come hai verificato il valore risolto. Una voce plausibile nel progetto non dimostra che il binario caricato contenga la stessa configurazione.

Prove necessarie per la pubblicazione

  • Valore di produzione per ridurre i bridge identificato
  • File o impostazione responsabile collegato
  • Configurazione nativa risolta controllata
  • Artefatto firmato provato su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni differenza ha responsabile e criterio di stop

4. Limitare i file

Disattiva accessi file e content non necessari.

Non controllare limitare i file come impostazione isolata. Collegalo a sicurezza WebView nelle app ibride, all’artefatto di produzione firmato e ai valori della console. Annota quale file genera l’impostazione, se un framework o plugin può modificarla durante la build e come hai verificato il valore risolto. Una voce plausibile nel progetto non dimostra che il binario caricato contenga la stessa configurazione.

Prove necessarie per la pubblicazione

  • Valore di produzione per limitare i file identificato
  • File o impostazione responsabile collegato
  • Configurazione nativa risolta controllata
  • Artefatto firmato provato su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni differenza ha responsabile e criterio di stop

5. Controllare la navigazione

Gestisci redirect, finestre, download e intent.

Non controllare controllare la navigazione come impostazione isolata. Collegalo a sicurezza WebView nelle app ibride, all’artefatto di produzione firmato e ai valori della console. Annota quale file genera l’impostazione, se un framework o plugin può modificarla durante la build e come hai verificato il valore risolto. Una voce plausibile nel progetto non dimostra che il binario caricato contenga la stessa configurazione.

Prove necessarie per la pubblicazione

  • Valore di produzione per controllare la navigazione identificato
  • File o impostazione responsabile collegato
  • Configurazione nativa risolta controllata
  • Artefatto firmato provato su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni differenza ha responsabile e criterio di stop

6. Proteggere le sessioni

Controlla cookie, token, OAuth e logout.

Non controllare proteggere le sessioni come impostazione isolata. Collegalo a sicurezza WebView nelle app ibride, all’artefatto di produzione firmato e ai valori della console. Annota quale file genera l’impostazione, se un framework o plugin può modificarla durante la build e come hai verificato il valore risolto. Una voce plausibile nel progetto non dimostra che il binario caricato contenga la stessa configurazione.

Prove necessarie per la pubblicazione

  • Valore di produzione per proteggere le sessioni identificato
  • File o impostazione responsabile collegato
  • Configurazione nativa risolta controllata
  • Artefatto firmato provato su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni differenza ha responsabile e criterio di stop

7. Esaminare Capacitor

Inventaria navigazione, server e plugin.

Non controllare esaminare capacitor come impostazione isolata. Collegalo a sicurezza WebView nelle app ibride, all’artefatto di produzione firmato e ai valori della console. Annota quale file genera l’impostazione, se un framework o plugin può modificarla durante la build e come hai verificato il valore risolto. Una voce plausibile nel progetto non dimostra che il binario caricato contenga la stessa configurazione.

Prove necessarie per la pubblicazione

  • Valore di produzione per esaminare capacitor identificato
  • File o impostazione responsabile collegato
  • Configurazione nativa risolta controllata
  • Artefatto firmato provato su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni differenza ha responsabile e criterio di stop

8. Provare gli attacchi

Usa URL manipolati, iframe e contenuto compromesso.

Non controllare provare gli attacchi come impostazione isolata. Collegalo a sicurezza WebView nelle app ibride, all’artefatto di produzione firmato e ai valori della console. Annota quale file genera l’impostazione, se un framework o plugin può modificarla durante la build e come hai verificato il valore risolto. Una voce plausibile nel progetto non dimostra che il binario caricato contenga la stessa configurazione.

Prove necessarie per la pubblicazione

  • Valore di produzione per provare gli attacchi identificato
  • File o impostazione responsabile collegato
  • Configurazione nativa risolta controllata
  • Artefatto firmato provato su dispositivo pulito
  • Differenze iOS e Android documentate
  • Ogni differenza ha responsabile e criterio di stop

Domande frequenti

Capacitor è sicuro di default?

No. Dipende da origin, plugin e configurazione.

Disattivare JavaScript?

Sì se non serve; altrimenti limita contenuti e bridge.

Basta una allowlist?

No. Contano anche path, redirect e autorizzazione.

Cosa non prova l’analisi statica?

Non osserva tutti i contenuti e redirect dinamici.

Fonti primarie ufficiali

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