Come posso assicurarmi che il file in entrata sia sicuramente del tipo di file previsto?

3

Ho un programma per verificare se i file in entrata si trovano in un tipo di file previsto, ad es. PDF. Il programma prima dà un'occhiata al numero magico e determina il tipo di file da quello. Il problema è che posso ancora iniettare file di script dannosi (ad esempio file batch su Windows) semplicemente inserendo il numero magico all'inizio, che verrà poi ignorato nella riga di comando durante l'esecuzione del file. C'è un altro modo per assicurarti che il file sia (in questo esempio) un vero file pdf?

    
posta arc_lupus 16.06.2015 - 17:06
fonte

1 risposta

4

Garantire che un file sia il tipo di file giusto è impegnativo e talvolta impossibile.

Se possibile, utilizza un parser di file rigoroso.

Per un file PDF, utilizzare una libreria pdf o un parser pdf per analizzare il file e rifiutare il file in caso di problemi di analisi. Questo può spesso avere reali conseguenze di compatibilità, dal momento che molti client PDF consentono documenti PDF non validi.

Salva il file in una posizione limitata con autorizzazioni limitate

Assicurati di salvare il file in un percorso non elaborato dal tuo server web. Assicurati che l'estensione non sia eseguibile dal tuo webserver. Consenti solo l'accesso in lettura al file (nega esplicitamente i privilegi di esecuzione).

Comprendi quali tipi di attacchi sono resi possibili dai file caricati dall'utente

Nel caso di un file che viene caricato su un server, se vengono prese precauzioni non eseguibili, viene mitigato un file dannoso che supera il parser dei file. Tuttavia, se il file è reso disponibile per altri utenti, è possibile che si desideri utilizzare l'antivirus o eseguire la scansione per le firme dannose conosciute. Questo approccio alla lista nera è l'ultima risorsa, ma è una misura ragionevole da prendere.

    
risposta data 16.06.2015 - 17:16
fonte

Leggi altre domande sui tag