Come garantire che i file caricati dagli utenti non contengano alcun codice XSS

6

Ho lavorato per fornire la sicurezza relativa agli attacchi XSS. Il mio sito web consente solo i seguenti mime-types:

XML, CSV, HTML, PLAIN, VND_WAP_WML, APPLICATION_ZIP, APPLICATION_PDF, APPLICATION_VND_FDF, APPLICATION_MS_WORD, APPLICATION_OCTET_STREAM, APPLICATION_VND_MS_POWERPOINT, APPLICATION_X_VISIO, IMAGE_GIF, IMAGE_PNG, IMAGE_TIF, APPLICATION_VND_MS_OUTLOOK, APPLICATION_DOWNLOAD, APPLICATION_JSON

Ho disinfettato i file HTML usando antiSamy. Come posso garantire che i dati nei file siano sicuri prima di caricare i dati nel database e prevenire attacchi XSS persistenti?

    
posta Prerit 15.07.2013 - 10:32
fonte

2 risposte

6

Non puoi, davvero.

Puoi ridurre le possibilità di content-sniffing eseguendo HTML servendo file con un'intestazione X-Content-Type-Options: nosniff e prova ad evitare che vengano trattati come pagine HTML servendo con Content-Disposition: attachment , ma hai ancora i browser più vecchi di cui preoccuparti e plug-in del browser. (Ad esempio SOP di Java rotto e XML di crossfishing Flash di Flash.)

La soluzione migliore se devi accettare file caricati dall'utente è di servirli da un dominio separato, in modo che qualsiasi attacco XSS non possa compromettere il sito principale.

    
risposta data 15.07.2013 - 12:37
fonte
0

non puoi.

pdf consente l'inclusione di dati codificati / compressi altrimenti, le stringhe possono essere aggiunte alle immagini ecc. pp; dovresti controllare ogni file che viene caricato da un terzo software (sourcefire crea qualcosa come un parser per pdf / zippato - dati per estendere lo snort, usando lua iirc; ma non conosco lo stato di quel progetto)

    
risposta data 15.07.2013 - 12:12
fonte

Leggi altre domande sui tag