Sicurezza delle risorse / media su s3

2

Ho ottenuto la mia applicazione scritta in Flask (Python 3.6) e in esecuzione su EB.

Ho bisogno di implementare un content editor che permetta di caricare file sul server e vorrei memorizzarli su s3. La maggior parte dei file caricati sarà disponibile dopo il login nella mia app.

La domanda è come gestire la sicurezza di tali file?

Devo usare la mia applicazione come middleware e controllare se l'utente è loggato e se sì, quindi scaricare il file da S3 nel mio backend e restituirlo all'utente come risposta standard di Flask?

O un'idea migliore è quella di generare gli URL con la data di scadenza preselezionata?

Il problema con gli URL preselezionati è che perderò il caching del browser per i miei file, cosa che vorrei conservare (la maggior parte dei file sono immagini, quindi non è necessario scaricarlo nuovamente ogni volta).

Anche il secondo problema è che questo url non è in alcun modo vincolante con l'utente che ha effettuato l'accesso alla mia app, quindi in pratica questo url preselezionato può essere utilizzato da chiunque fino alla sua scadenza.

In questo momento ho implementato il codice legacy in prima persona:

    
posta Blejwi 04.10.2017 - 08:05
fonte

1 risposta

2

Facebook fa qualcosa di simile all '"URL presegnato" - la loro immagine CDN non controlla l'autenticazione, né è sullo stesso dominio quindi non può nemmeno ottenere il cookie della sessione di Facebook se lo desidera - invece usano l'URL come chiave (l'URL viene mostrato sempre all'utente autenticato). Sembra che stia funzionando bene per loro quindi non vedo alcun problema con l'utilizzo di tale approccio nel tuo progetto.

    
risposta data 04.10.2017 - 14:45
fonte

Leggi altre domande sui tag