Riguardo agli attacchi Cross-Site Scripting

0

La mia applicazione ha un modulo di gestione del caricamento e accetta file Excel e di testo sul nostro server.

Ho rilevato dati non validi all'interno di alcuni file caricati (l'uploader ha messo <script>alert("XSS")</script> invece dei dati originali). Ho verificato all'interno del database e quei dati sono stati memorizzati al suo interno.

Vorrei sapere se la mia applicazione è vulnerabile.

    
posta user35819 10.01.2014 - 13:40
fonte

3 risposte

4

Non possiamo sapere se è vulnerabile o meno.

Nella protezione dagli attacchi XSS archiviati (anche se lo stesso si applica agli attacchi riflessi) ci sono 2 fasi chiave in cui la protezione deve essere applicata. Quando i dati vengono presentati al tuo sistema e quando presenti i dati ad altri sistemi. Se sai di avere una protezione in atto che dovrebbe respingere gli attacchi XSS pontential al caricamento, sembra che non stia funzionando. Se disponi di protezione sui canali di uscita, è possibile che questo non sia sfruttabile. Ma non sappiamo quali di questi sono in atto.

Dovresti vedere come questi dati lasciano il tuo sistema per stabilire se questa potenziale vulnerabilità può essere sfruttata.

    
risposta data 10.01.2014 - 15:34
fonte
1

Una buona pratica per gestire il caricamento degli utenti è stata condivisa in questo post sul blog di sicurezza di Google : spiega le insidie comuni e alcuni passaggi aggiuntivi di difesa. Lasciatemi riassumere qui:

Codifica il tuo output per il suo contesto: Assicurati di avere la corretta codifica dell'output con algoritmo diverso per il contesto. Dovresti avere diverse pratiche di sanitizzazione per ogni HTML, attributi HTML, JSON ecc.

Fornisci contenuti utente da un dominio diverso: Prima di tutto, è sempre saggio servire i contenuti utente da un dominio diverso. Google utilizza googleusercontent.com e troverai sicuramente un investimento economico per la tua sicurezza. Lo stesso criterio di origine ti aiuta qui, poiché uno XSS non può raggiungere il dominio meno importante nel tuo dominio principale.

    
risposta data 10.01.2014 - 20:24
fonte
-3

Se l'utente è stato in grado di caricare una stringa dannosa nel file o al posto del file: è vulnerabile .

Devi avere la convalida (specialmente sul lato server) per essere sicuro di quali dati carichi sul tuo DB. In generale, dovresti convalidare e disinfettare ogni input di dati.

Maggiori informazioni su prevenzione XSS e su OWASP Enterprise Security API , disponibile per Java, PHP e altre popolari piattaforme di applicazioni Web.

    
risposta data 10.01.2014 - 16:39
fonte

Leggi altre domande sui tag