Le informazioni sullo schema di hashing per il client quando si generano query SQL sono più sicure?

3

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.

  1. Il cliente riceve informazioni sui metadati (tabella, colonna) dal server.
  2. L'utente interagisce, fa qualcosa, ad esempio aggiorna una colonna su una riga.
  3. 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.
  4. 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?

    
posta Mark Garcia 28.02.2015 - 07:03
fonte

2 risposte

3

Sarebbe la sicurezza attraverso l'oscurità quindi no, non migliorerebbe la sicurezza. È stato mostrato più e più volte, se la tua unica difesa è che "nessuno conosce il mechnanism in atto, allora basta che una persona vi inciampi e, in pochi minuti, centinaia di persone lo sapranno.

PU MAY rendere le cose più difficili, ma basta uno spiritoso per deobfuscare il tuo schema.

    
risposta data 28.02.2015 - 08:59
fonte
1

Come ha fatto notare Lucas, nascondere i nomi è semplicemente offuscamento e io sono d'accordo. Se si desidera consentire agli utenti di modificare solo determinate tabelle / colonne, è necessario implementare la sicurezza nella programmazione che verifica che solo gli oggetti consentiti possano essere modificati. Non dare per scontato che l'utente proverà solo a fare cose che gli si presentano. È più sicuro presumere che l'utente possa (e lo farà) armeggiare con la richiesta in ogni modo possibile.

    
risposta data 28.02.2015 - 18:33
fonte

Leggi altre domande sui tag