foto sicure sul server [chiuso]

2

Vorrei ricevere consigli dagli sviluppatori più esperti. Il progetto è ora in fase di progettazione. È un'applicazione mobile e una semplice applicazione web. Il contenuto è immagini, commenti, corrispondenza personale.

Le immagini possono essere piuttosto personali. Hai bisogno di un atteggiamento molto serio nei confronti della sicurezza.

La domanda è semplice: dove archiviare le foto e come proteggerle?

Penso che sarà nel modo seguente:
1. L'utente fa qualche foto. Tramite SSL l'applicazione invia foto al server.
2. Il server riceve la foto, la crittografa e la memorizza da qualche parte.

Inoltre, tramite l'app l'utente può vedere tutte le proprie foto.
1. Richiesta al server per le foto.
2. Il server decrittografa le foto archiviate e invia tramite SSL al client.

Ho bisogno di alcuni consigli tecnici: dove salvare le immagini, so che il database è piuttosto lento per questo caso, che gli algoritmi usano per cifrare / decifrare, per quanto riguarda la cache. Sarà un progetto ad alto carico e le prestazioni sono molto importanti.

L'applicazione mobile è pianificata su framework multipiattaforma come phoneGap, Titanium. Sul server è .NET. Ma è programmato. Considero anche i framework full stack per javascript.

    
posta user348173 01.03.2014 - 07:13
fonte

5 risposte

2

Consiglierei di utilizzare Amazon S3.

Hanno un'API abbastanza decente per .net e io lo uso per tutta la mia archiviazione di immagini.

Puoi impostare la privacy su un'immagine "bucket" che significa che senza accedere con l'utente / password o token saranno perfettamente al sicuro.

Ovviamente, si ottengono tutti i servizi di cloudnnancy e servizi basati sulla localizzazione, inoltre sarebbe fantastico se lo si utilizzerà con mobile e web, in quanto non si limiterà se le immagini rimarranno bloccate su un server web.

link

    
risposta data 02.03.2014 - 22:51
fonte
1

dove salvare le immagini

Come hai capito, salvare le immagini su un database non è utile per il tuo scopo. Il solito approccio è -

  1. Salva l'immagine caricata in qualsiasi directory sul server.
  2. E poi salva il percorso dell'immagine nel database .

Poiché stai anche crittografando le immagini, non dovrebbe importare se qualcuno scopre dove si trovano le immagini sul server. (Ovviamente, devi assicurarti che le tue chiavi crittografiche siano al sicuro, ma questo è un altro argomento.)

    
risposta data 14.03.2014 - 15:56
fonte
1

Nel progetto al quale sto lavorando attualmente ho dovuto risolvere lo stesso problema.

La mia soluzione è:

  • Memorizza le risorse su HDD come file (l'HDD è fatto per questa attività quindi questa è la soluzione migliore imho).
  • Memorizza nell'ID del database di risorse con "meta data" aggiuntivi del percorso.
  • Per fornire client (iPad in questo caso) con foto protette, utilizziamo Spring MVC con l'autenticazione di base e l'interfaccia REST.

L'autenticazione di base su HTTPS soddisfa i requisiti di autenticazione. Puoi facilmente implementarlo con Spring. Spring fornisce anche un'interfaccia REST per le richieste HTTP. I file dovrebbero essere memorizzati sul disco rigido. Ulteriori metadati possono essere archiviati nel database per fornire una ricerca veloce (per esempio data di caricamento o utente di caricamento).

Può essere facilmente implementato con strumenti che ho menzionato. Ecco perché penso che sia una buona soluzione. Ci sono anche molti repository di contenuti che possono essere installati sul server dove verrà distribuita la webapp. Ho preso in considerazione l'utilizzo di Jackrabbit, ma la soluzione che ho provato ha soddisfatto i nostri bisogni.

    
risposta data 14.03.2014 - 17:57
fonte
0

Questa non sarà una risposta lunga, ma forse è d'aiuto.

Che ne dici di conservarlo su Azure, AWS, Google o Manta. Quindi crittografare i dati con un algoritmo sicuro utilizzando il dispositivo IMEI.

Come spazio di archiviazione preferisco Azure, lo uso sul mio bancomat ed è molto bello per .net e node.js.

Come algortihm, come su Rijndael o RSA.

Un po 'più di spiegazione, l'IMEI è unico e quindi nessun altro può decodificarlo, senza accedere al dispositivo. L'altra roba, il cloud è l'unica opzione per l'accesso globale.

    
risposta data 14.03.2014 - 18:02
fonte
-1

Potrebbe non essere una buona idea usare javascript per decifrare, in tal caso, chiunque abbia accesso al tuo sito, avrà una copia del decryptor, la soluzione che posso suggerire è di mantenere le foto crittografate al database. la decrittografia deve essere sul lato server quando una richiesta sicura arriva attraverso una connessione SSL. Non sono sicuro, ma è utile anche il blocco dei link diretti alle foto, i tuoi link devono passare attraverso un routing sicuro

    
risposta data 01.03.2014 - 09:19
fonte

Leggi altre domande sui tag