Come conservare i documenti client caricati in modo sicuro nell'applicazione web

5

Una piccola azienda senza competenze IT vuole eseguire un'applicazione web in cui i clienti possono inserire vari bit di dati e caricare i pdf. I documenti riguardano le specifiche del prodotto e devono essere mantenuti sicuri.

Hanno un ragazzo IT esterno che vuole vendere loro un'applicazione PHP per l'attività. Vuole archiviare i documenti direttamente sul server web e sincronizzarli con Google Drive, che utilizzano per i loro documenti interni.

  • Va bene archiviare i documenti sul server o ciò crea un potenziale problema di sicurezza? Ho la sensazione che non debbano conservare i file sul server dopo il caricamento e che dovrebbero portarli via dal server web e in un dominio più protetto subito dopo il caricamento?

  • Va bene sincronizzare questi file sensibili con un app Google per l'account aziendale? Le credenziali di Google devono essere note per l'applicazione web. Questo pone un altro rischio per la sicurezza?

  • Consiglieresti contro l'uso di PHP in questo scenario?

  • C'è una soluzione migliore a questo?

Grazie mille! : -)

    
posta Nordic 05.06.2016 - 09:29
fonte

3 risposte

2

Per prima cosa, non dovresti pensare alla sicurezza in termini di binario "ok" o "non ok". Ogni scelta che fai ha implicazioni sulla sicurezza che vuoi capire.

Per quanto riguarda la conservazione dei file sulla macchina del server Web, questo non rappresenta in genere un problema per la maggior parte delle applicazioni commerciali. Devi solo assicurarti che non siano accessibili tramite il server web. La loro memorizzazione al di fuori delle directory dei documenti del server Web è una strategia tipica. E, naturalmente, non trascurare la sicurezza sul server stesso.

Mettere i file in una cartella di Google Drive dovrebbe andare bene. Un'altra opzione è quella di rsync periodicamente alla rete locale. Ma in realtà dipende da cosa l'azienda ha bisogno. Un'altra opzione consiste nel fornire all'azienda un sistema basato sul Web tramite il quale i file sono accessibili e eliminare la replica dei file tutti insieme.

PHP va bene. Raramente la scelta della lingua è un fattore importante. È molto più probabile che si verifichino problemi di sicurezza nel codice dell'applicazione stesso. Basta tenere aggiornato il PHP. Ma lo stesso vale per ogni linguaggio lato server.

    
risposta data 05.06.2016 - 09:59
fonte
2

Qui ci sono una serie di potenziali problemi. Non c'è abbastanza dettaglio sulla soluzione tecnica da dire con certezza, ma sembra un approccio non sofisticato.

Invece di criticare la selezione della tecnologia, dovremmo stabilire i criteri di sicurezza necessari per l'applicazione e chiedere come la soluzione raggiunge ogni punto.

ad es.

  • I documenti devono essere archiviati crittografati e, in caso affermativo, quale livello di crittografia è necessario?

  • A chi dovrebbe essere consentito di accedere ai documenti e in che modo viene impedito l'accesso non autorizzato?

  • Per quanto tempo devono essere conservati i documenti e come possiamo assicurarci che siano stati eliminati correttamente.

Nel caso di un sito Web di php che salva i documenti in una cartella e sincronizzi con google, sembrerebbe che tu ricada su tutti se queste domande.

Il documento non è crittografato. Se il server viene compromesso, l'utente malintenzionato sarà in grado di leggere i documenti.

La sincronizzazione con l'unità google richiederebbe sicuramente un po 'più di complessità per impostare le impostazioni di autorizzazione per documento. Inoltre, come sono mantenute sicure le credenziali di Google? Se ottengo il codice di caricamento posso anche scaricare tutti i documenti.

Infine, la natura di richiesta / risposta di un sito Web non si presta alla natura pianificata dell'attività di eliminazione dei vecchi documenti.

Siate pronti con 'Ma non abbiamo bisogno di ...' risposte di stile.

--- modifica

La risposta di GrandmasterB mi ha spinto ad ampliare le mie opinioni sull'archiviazione dei file sul server web.

La mia opinione è che questa è una pratica molto negativa in generale e può portare a una serie di problemi di sicurezza.

1: cancella la directory.

Se non usi mai realmente la directory stessa, invece sincronizzi l'unità google o qualsiasi altra cosa; quindi la directory webserver può essere dimenticata come una semplice fase tecnica del processo di acquisizione del file sul PC. Finisci con una directory di file dimenticati in giro da qualche parte su Internet.

2: backup

Se si esegue il backup del server Web è probabile che si stia eseguendo anche il backup della directory dei file. Ancora una volta questo porta a una copia dimenticata o copie dei dati che circolano intorno

3: web farm e terze parti

il modo comune di eseguire siti Web in questi giorni è di avere più di un server alla volta. anche se è solo una casella di scambio a caldo, ora hai DUE directory di file da gestire e sincronizzare. vuoi far ruotare più scatole per far fronte al carico? Cambia fornitore? Aggiornamento? Ognuno significa più luoghi in cui sono archiviati i dati dei clienti

Inoltre, chi ospita i propri siti web in questi giorni? È probabile che il tuo sito web sia "in the cloud" o con una terza parte. Anche se questo avrà i suoi problemi di sicurezza, non è necessario collegare "sicurezza del codice del mio sito web necessario" con "la sicurezza dei dati dei miei clienti ha bisogno" se puoi aiutarlo.

In sintesi, ritengo che tu abbia maggiori probabilità di perdere traccia dei tuoi dati e di avere un 'omg interno' che abbiamo dovuto fare una revisione di sicurezza per un cliente e sono pazzi di avere 10 copie dei loro documenti segreti 'a meno che hai un singolo repository di documenti di qualche tipo, separato da altre preoccupazioni

    
risposta data 05.06.2016 - 09:45
fonte
0

Grazie per tutti i feedback forniti!

Darò loro il seguente consiglio:

Assicurati che il programmatore segua le linee guida di codifica sicure OWASP.

Assicurati che le password siano archiviate crittografate nel database.

Non salvare i documenti sul server web. Sincronizzali immediatamente su Google o Spideroak se devono essere crittografati. Se la sincronizzazione fallisce, l'intera transazione fallisce.

Avere una applicazione web Firewall davanti alla webapp.

Paga per un controllo di Scurity professionale e test di penetrazione.

Qualcosa di più? : -)

    
risposta data 06.06.2016 - 09:08
fonte

Leggi altre domande sui tag