Potenziali problemi di sicurezza in un processo di caricamento in due parti

1

Uso un approccio URL pre-firmato per il caricamento di file in un bucket S3 privato. Una distribuzione CloudFront è configurata per utilizzare questo bucket come origine.

Il processo di caricamento è disponibile solo per autenticare gli utenti e viene eseguito in due passaggi:

  1. Richieste client per l'URL preconfigurato, il mio server genera l'URL utilizzando le credenziali AWS e restituisce l'URL.

  2. Il client utilizza questo URL per inviare una richiesta di PUT a S3 e completa il caricamento.

Finora, il mio server genera semplicemente l'URL firmato utilizzando il nome file fornito dal client e non esegue alcun controllo della logica di business per il caricamento (ad esempio se un caricamento richiesto è valido). L'argomento per farlo in questo modo è disporre di un servizio di caricamento generico indipendente da altre parti dell'API che potrebbe essere correlato a diversi tipi di caricamento di file (ad esempio PDF, foto, audio, ecc.).

Inoltre, al momento non vi è alcuna verifica / conferma esplicita di un caricamento riuscito. Dopo che il client ha ricevuto l'URL pre-firmato, ha 5 minuti per completare il caricamento prima della scadenza dell'URL, ma non esiste un controllo esplicito se il file è effettivamente caricato.

Mi chiedo se ci sia un serio difetto di sicurezza nel processo di cui sopra.

    
posta MLister 07.07.2015 - 00:24
fonte

0 risposte