File zip , GZip , e probabilmente altri, includono informazioni sul file contenuto, inclusa la dimensione non compressa del file. Tuttavia, quando si estrae questi file il numero non ha senso in quanto i dati effettivi possono essere molto più grandi (ad esempio: riportato come 1 byte, ma in realtà 10 GB ).
Dato che la decompressione di un file .zip
di grandi dimensioni potrebbe eseguire un sistema DoS utilizzando tutte le risorse, è necessario un qualche tipo di controllo per impedire l'estrazione di un file che potrebbe danneggiare il server. Un metodo potrebbe essere quello di limitare le dimensioni consentite a X GB. Se la dimensione dichiarata di un file è maggiore, esci in anticipo. Tuttavia, se la dimensione è dichiarata errata, prima di uscire dovresti decomprimere fino a quella dimensione.
Un'alternativa potenziale è iniziare la decompressione e non appena la dimensione effettiva è maggiore di quella dichiarata (forse con un margine di errore), esci.
Esistono casi legittimi in cui la dimensione dichiarata di un file compresso in un archivio (zip, gzip o altro) sarebbe errata? C'è qualche software popolare che produce file così spezzati?