Ho sentito gente insegnare qua e là su Internet che è meglio oscurare gli ID del database pubblico nelle applicazioni web. Suppongo che significino principalmente nelle forme e negli URL, ma non ho mai letto niente di più di un boccone sull'argomento.
EDIT : Certo, ora che chiedo questo, trovo alcune risorse sull'argomento:
- /programming/2374538/obscuring-database-ids
- /programming/1895685/should-i-obscure-primary-key-values
- http://joshua.schachter.org/2007/01/autoincrement.html
Questi link hanno soddisfatto alcune delle mie curiosità, ma i post SO non hanno molti voti e non sono necessariamente centrati sull'argomento in questo contesto, quindi non sono sicuro di cosa farne, e alcuni di loro affermano che il terzo il collegamento è falso. Lascio il resto del mio post intatto:
Comprendo le differenze tra oscurità e sicurezza, nonché il modo in cui i due possono lavorare insieme, ma non riesco a immaginare perché ciò sia necessario.
C'è qualche verità in questo, è solo paranoia o è totalmente totalmente fasullo?
Posso pensare a come farlo, ma ovviamente aggiunge molta complessità al codice dell'applicazione. In quali circostanze sarebbe utile? Se questo è qualcosa che le persone fanno spesso, come viene di solito distribuito? Hashing degli identificatori? Qualcos'altro? Sembra un sacco di lavoro per non molta sicurezza in più. Non sto cercando soluzioni reali, voglio solo avere un'idea di come / perché le persone lo farebbero nel mondo reale.
È davvero considerata una "best practice" o è semplicemente una micro-ottimizzazione di scarso valore?
NOTA : penso che alcune persone potrebbero aver avuto un'idea sbagliata: non sto suggerendo che gli ID difficili da indovinare sarebbero l' unico meccanismo di sicurezza, ovviamente ci sarebbero i soliti controlli di accesso. Supponiamo che siano presenti e che la semplice conoscenza dell'ID o dell'hash di un record non sia sufficiente per consentire l'accesso.