Esistono due diversi tipi di problemi con dati non attendibili:
- Può contenere codice dannoso da eseguire direttamente (malware)
- Può essere creato in modo tale da far sì che le tue applicazioni legittime si comportino in modo errato (exploit) ed eseguano qualcosa di brutto (payload)
JavaScript è davvero nella prima categoria. Quando i produttori di browser o PDF writer (o altri fornitori di software che utilizzano JS) non prestano sufficiente attenzione a ciò che il loro motore JavaScript consente agli aggressori di fare, il codice JavaScript può essere scritto per danneggiare il tuo sistema. Ad esempio, gli attacchi XML External Entity utilizzano la specifica XML nel codice JavaScript per raggiungere i file che non possono toccare.
I file CSS non contengono naturalmente il codice, ma come indicato da un cloudfeet un file CSS non autorizzato può attivare il browser per caricare ed eseguire file esterni contenenti script. Ciò significa che un file CSS può essere utilizzato per attivare le esecuzioni di JavaScript (ma se è stata installata un'estensione del browser che blocca gli script, probabilmente bloccherebbe anche tali script).
Oltre a questo, i file "statici" che non contengono codice possono danneggiare un browser contenente dati fittizi (scelti con cura) che sfruttano l'esistenza di un bug o di un errore (chiamato vulnerabilità) nel browser. Il modo in cui il browser non riuscirà a elaborare questi dati fasulli lo farà compiere azioni che l'aggressore sta cercando. Ad esempio, potrebbe reindirizzare l'esecuzione del codice del browser in qualche segmento del file CSS che contiene istruzioni macchina, invece del normale codice del browser.
Sembra improbabile, ma in realtà molti attacchi appartengono a questa categoria. Ad esempio, le librerie JPEG e PNG vengono occasionalmente prese di mira, perché sono codice di basso livello che è molto utilizzato (dai browser e anche da altri programmi come il tuo sistema operativo). Spesso i browser creano processi specifici con privilegi ridotti per l'analisi dei file e il rendering delle pagine Web per ridurre il rischio associato all'esecuzione di tale codice.
La cattiva notizia è che non si può fare nulla al riguardo e sono costantemente esposti al pericolo sul Web. Il tuo unico aiuto è di mantenere aggiornato tutto il tuo software per ridurre la superficie di attacco.