Spesso mi imbatto in applicazioni Web che espongono chiavi primarie del database interno tramite moduli come caselle di selezione. E occasionalmente vedo la corrispondenza javascript con un valore magico int o guid che cambia la logica.Evitare di esporre le chiavi primarie nella sorgente di un'app Web?
È consigliabile evitare perdite di tutti gli identificatori interni delle righe nell'applicazione Web per impedire agli estranei di comprendere troppo il proprio sistema e utilizzarlo eventualmente per sfruttare il proprio sistema. Se sì, qual è il modo migliore per risolvere questo problema?
Se si espone un altro valore all'app Web che può essere nuovamente tradotto nella chiave primaria?
Grazie
Modifica
In un mondo perfetto la vostra applicazione sarebbe sicura al 100% in modo che non avrebbe importanza se oscurato le cose. Ovviamente non è così, dovremmo avere degli errori sul lato della cautela e non esporre queste informazioni?
Alcuni hanno sottolineato che StackOverflow sta probabilmente esponendo una chiave nell'URL che probabilmente sta bene. Tuttavia sono considerazioni diverse per le applicazioni aziendali?
+1 Sono d'accordo. L'uso di alcuni valori arbitrari per evitare di mostrare l'ID di qualcosa è al massimo la sicurezza attraverso l'offuscamento (leggi: non eccezionale). La tua sicurezza dovrebbe essere abbastanza forte da rifiutare i valori falsi degli utenti. – nickf
ma ... per quanto riguarda i PK ottenuti da un DB che rappresenta le righe in una tabella che verranno utilizzate per generare una griglia? – JPCF
@nickf Considereresti di memorizzare la password come hash invece di testo normale come 'security-through-obfuscation'. – Medorator