2016-06-21 9 views
9

Sto provando a distribuire la mia app seguendo il codice-push doc. Ho poi aggiunto il seguente contenuto-sicurezza per la mia app index.htmlRifiutato di caricare l'immagine perché viola la politica di contenuto-securtiy - Cordova

<meta http-equiv="Content-Security-Policy" content="default-src https://codepush.azurewebsites.net 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 

Immediatamente ho aggiunto, la mia app non funziona di nuovo. Quando eseguo il mio browser cordova. Ho visto molti errori nella console. Si scopre i miei file di stili di riferimento da github, mie immagini referenziate da mysite.com/... e gli altri miei script esterni, goopleapis sono la mia politica di sicurezza al di sotto

<meta http-equiv="Content-Security-Policy" content="default-src * 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 

Ora funziona bene. La mia domanda è: qual è la ramificazione della sicurezza? Dovrei lasciarlo in quel modo? Quanto meglio dovrei farlo? Qualsiasi aiuto o opinione sarebbe apprezzato. Sono preoccupato che lasciare * possa permettere che gli attacchi siano sospesi.

risposta

5

Hai ragione, lasciare il tuo CSP in questo modo potrebbe rendere le cose più facili per un utente malintenzionato. L'idea principale alla base dell'utilizzo di un CSP è la whitelist degli URL come here.

Inserendo nella whitelist tutto il carattere jolly *, è possibile che un utente malintenzionato carichi codice (ed esegua) da qualsiasi luogo una volta che è in grado di immettere codice nell'applicazione. Controlla l'articolo collegato su questo, è molto meglio di quello che sto scrivendo qui;)

Quindi qual è il modo giusto per fare questo?

  1. Scopri quali domini desideri includere nella whitelist e che tipo di dominio fornisce resources.
  2. Elimina il jolly e la lista bianca esattamente quei domini esattamente per quelle risorse che ti servono. Diamo ad esempio un'occhiata ai tuoi fogli di stile da GitHub. Si deve aggiungere GitHub come dominio affidabile per gli stili un po 'come questo: style-src 'self' https://github.com 'unsafe-inline';

Nota: Fare attenzione con la politica default-src in quanto sostituisce le altre politiche. E quando si tratta di whitelist immagini, potrebbe essere necessario aggiungere la parola chiave data: in questo modo: img-src 'self' http://somedomain.com data:;

Mozilla's documentation è abbastanza buono, se siete alla ricerca di una panoramica di tutte le politiche e le parole chiave ...

+0

I documenti sono davvero utili. Controllali se questa domanda non risponde a tutto. –

3

risolto con:

script-src 'self' http://xxxx 'unsafe-inline' 'unsafe-eval'; 
+0

Questo problema risolto il caricamento delle immagini in Cordova + Phaser3 '' – bFunc

Problemi correlati