Sto pensando di implementare un sistema web in cui le API e la presentazione per CRUD nelle tabelle di dati sono generato automaticamente, come quello in phpMyAdmin. Come ho intenzione di implementare questo è di costruire istruzioni SQL basate su richieste dal client.
- Il cliente riceve informazioni sui metadati (tabella, colonna) dal server.
- L'utente interagisce, fa qualcosa, ad esempio aggiorna una colonna su una riga.
- Il cliente invia una richiesta, incluso un identificativo per la tabella , un identificatore per la riga, identificatore della colonna e i nuovi dati della colonna.
- Il server crea query ed esegue materiale.
Ora quello che mi interessa sono le parole evidenziate in # 3. Solo l'uso di identificatori semplici (il nome stesso) consentirebbe agli utenti esperti di modificare facilmente le richieste in base alla loro volontà (ad esempio, la richiesta di indirizzamento a un'altra tabella / colonna). Un'altra cosa importante che considero è avere una presentazione di sola lettura, che dovrebbe comunque includere i metadati della tabella per cose come l'ordinamento, il filtraggio, ecc. Sono piuttosto inquietante nell'esporre tali metadati quando viene usata la comunicazione non criptata.
A condizione che una sicurezza sufficiente (crittografia del trasporto (tranne che in alcuni casi), input igienico-sanitari, verifiche dei privilegi) siano a posto, la mia domanda è:
- Will hashing (oscurando, forse in modo diverso) i metadati della tabella (nome della tabella e / o nomi delle colonne) fornire ulteriori sicurezza? O introdurrà misure igieniche (assicurandoti che il nome della tabella passato sia in realtà una tabella, lo stesso per le colonne) e i controlli dei privilegi siano sufficienti?
Mi sono reso conto che per la maggior parte del caso (cioè, ad eccezione dello scenario di sola lettura sopra riportato) l'utente è già all'interno dell'ostruzione ermetica , ma l'hashing migliorerebbe ancora la sicurezza?