XSS dal caricamento delle immagini: il ritaglio risolve la maggior parte dei problemi?

1

Sto testando un uploader di immagini ma sono un semplice sviluppatore. Ecco i punti principali da considerare:

  • Non ci sono controlli di estensione.
  • L'immagine è caricata in memoria.
  • Viene modificato in modo da avere una certa dimensione (50 x 50 px).
  • Viene salvato nel database.
  • Dai test, sembra che la dimensione dell'immagine non sia andata a buon fine, quindi durante il re-rendering l'immagine visualizzata è semplicemente rotta
  • L'app è asp.net e si trova su un server Windows.

Ad eccezione del nome di file dodgy che cambia in Linux, c'è un punto debole? Può essere eseguito qualcosa se è salvato nel DB? Ti suggerirò di aggiungere le estensioni e il tipo di contenuto nella whitelist, ma è necessario? Se possibile, fornisci un esempio molto semplice (sicuro!) Di tutti i principali problemi.

    
posta user2330270 09.03.2016 - 09:29
fonte

1 risposta

2

Puoi creare una copia completamente nuova dell'immagine, archiviarla e quindi scartare l'originale.

Il tuo percorso diventerebbe:

  • Carica immagine.
  • Ritaglia a 50 x 50 px.
  • Usa ImageMagick o qualcosa di simile per creare un'immagine 50x50 vuota (in qualsiasi formato standard tu voglia o con altri controlli aggiunti).
  • Copia i dati dei pixel dall'originale al nuovo.
  • Salva la nuova versione.

Se ImageMagick non può leggere l'originale, forse c'è qualcosa di divertente in corso e dovrebbe essere comunque respinto.

    
risposta data 21.03.2016 - 22:19
fonte

Leggi altre domande sui tag