Quali sono i rischi per la sicurezza quando gli utenti caricano i loro HTML e javascript su AWS S3 e il contenuto viene utilizzato in una webapp?

2

Sto costruendo questa app Web in cui gli utenti possono accedere e creare la propria presentazione online. Per costruire la presentazione possono usare il loro html, css e javascript. Questi file utente non vengono caricati sul server dell'app Web (dove anche l'accesso tramite sessioni PHP viene eseguito su un dominio SSL separato) ma i file vengono caricati su Amazon S3. Quando un utente vuole caricare ha bisogno di un account utente registrato prima che possa iniziare a costruire e caricare. Ogni utente ha il proprio nome di dominio univoco su cui costruisce e accede.

I file HTML vengono letti da PHP e utilizzati in un motore di template per creare e mostrare la pagina di presentazione pubblica (sorta di un sito Web). Il javascrpt è collegato nell'HTML.

Spero tu possa darmi una mano! Mi piacerebbe sapere se questa è una configurazione sicura o sono i loro eventuali rischi che ho bisogno di risolvere. Ho letto molto su diversi problemi di sicurezza e spero che questo setup risolva molto. Ovviamente un utente è responsabile per il sito pubblico, ma sono responsabile per l'app web centrale e mi piace sapere se possono hackerare il sistema centrale usando l'HTML e il javascript caricati

    
posta Symtex 22.02.2013 - 09:05
fonte

2 risposte

0

No, non possono "hackerare il sistema centrale" con HTML / JS (e sicuramente non CSS). Se hai dato loro l'accesso PHP, dovresti stare attento, ma il normale HTML / JS / CSS è innocuo per il tuo server. Non tanto per i visitatori, però. Un utente malintenzionato può fare cose che danneggeranno visitatori al sito.

C'è una cosa che potrebbe essere necessario fare attenzione a questo proposito. Dipende molto dal tuo setup.

Supponiamo che il codice fornito dall'utente sia ospitato su www.mydomain.com . Diciamo che www.mydomain.com ha anche una funzione di accesso sullo stesso server. Come esempio reale, diciamo che sei proprietario di Facebook e stai permettendo alla gente di ospitare file HTML / JS in una sottodirectory (ad esempio www.facebook.com/username/index.html o qualcosa di simile). Ora, se visito www.facebook.com/eviluser/index.html , il suo JS ha accesso al mio account. Usando AJAX, può causare il caos con il mio account. Se ci sono altri siti Web con Access-Control Allow-Origin per www.facebook.com , e I sono loggato anche su quelli, il suo JS può anche devastare (via AJAX).

Fondamentalmente, devi essere sicuro che tutto l'AJAX scritto dall'utente non possa recare danno a un visitatore. Il modo più semplice per farlo è ospitarla su un dominio in cui non esiste alcuna funzionalità di "accesso"; JS così malevolo non ha sessioni da abusare. O prevenire la stessa origine AJAX (che probabilmente non è possibile ).

Un'altra cosa che devi stare attenta è che i tuoi utenti utilizzano il clickjacking / etc e il blocco del tuo sito.

    
risposta data 22.02.2013 - 09:39
fonte
0

Non possiamo davvero darti una garanzia di sicurezza poiché tutto dipende da ciò che la tua implementazione è a livello di codice.

Ciò che devi sempre prendere in considerazione quando accetti e eseguire codice da fonti non attendibili è: quali sono i rischi se questo codice è dannoso? Per contribuire a ridurre le possibilità di sfruttamento del tuo codice, che potrebbero derivare dall'essere in grado di "uscire" dal tuo sistema di template e invece di eseguire codice come parser del template per eseguire il sistema in una sandbox.

Su un tipico sistema Linux questo è solitamente ottenuto eseguendo in chroot . Dovresti implementarlo quando analizzi i codici caricati dall'utente.

Che riguarda gli exploit di livello inferiore, il prossimo problema è che stai ospitando il codice generato? Se lo sei, devi essere consapevole di cose come le vulnerabilità XSS. Se si consente agli utenti di ospitare contenuto JavaScript da un dominio da cui si accettano gli accessi, questo è un problema perché potrebbero facilmente scrivere una funzione JS che ruba i loro token di autenticazione. Quindi possono fingere di essere l'utente registrato sul sito e avere accesso illimitato come loro anche se non hanno il controllo del dominio. Puoi leggere ulteriori informazioni a questo proposito cercando Access Control Allow Origin.

    
risposta data 22.02.2013 - 09:41
fonte

Leggi altre domande sui tag