Il modo migliore per lavorare facilmente con un database nei programmi remoti?

4

Nel Database 101 hai imparato a non distribuire mai la password del database sensibile insieme al tuo programma, dal momento che tutto ciò che una persona deve fare è decodificare il programma, trovare dove hai effettivamente bisogno della password originale per l'autenticazione, quindi echo / stampare quella linea . Tuttavia, quando hai più programmi remoti che devono parlare con un database centrale, cosa fai?

Le mie soluzioni di hacking erano utilizzate per coinvolgere PHP, tonnellate di GET variabili e JSON. Vorrei fare una richiesta al server con una modalità e parametri impostati, quindi analizzare l'output JSON. Era buggato, non del tutto sicuro (rallentava solo un attaccante) perché non avevo alcun meccanismo di registrazione, difficile da scalare, e rendeva inutili tutti gli ORM esistenti. Inoltre, stava tentando di reinventare SSH o SSL, non qualcosa di troppo terribile.

Qual è l'alternativa? Quali altre opzioni sono disponibili in grado di fornire sicurezza per il database rendendomi facile per me?

    
posta TheLQ 16.12.2010 - 00:00
fonte

2 risposte

4

La cosa più grande che posso commentare con database e applicazioni è avere più account. Account separati per l'accesso in lettura e scrittura e forniscono a questi account l'accesso meno richiesto per completare l'attività specificata.

Esistono alternative come i tunnel VPN / SSH con un canale più sicuro per l'accesso remoto distribuito al database centrale.

Inoltre, nelle applicazioni non dovresti mai occuparti direttamente del database, ma le tue applicazioni dovrebbero avere un livello di astrazione del database o un qualche tipo che interagisca con il database. Questo è uno: buon design e due: un approccio migliore quando si posiziona tutta l'interazione DB in un unico punto e si fornisce all'API un'applicazione per utilizzare il livello di interazione del database.

    
risposta data 16.12.2010 - 00:04
fonte
3

Il wrapping del database in un livello di servizi / API è il modo più comune per farlo.

Al livello più elementare fornisci una mappatura ORM completa, ma generalmente forniresti endpoint che forniscono diverse funzioni di creazione / aggiornamento / risultato.

Come la tua soluzione PHP hackish, solo buona:)

    
risposta data 16.12.2010 - 23:33
fonte

Leggi altre domande sui tag