J'ai entendu des gens parler ici et là sur Internet qu'il est préférable de masquer les identifiants de base de données publics dans les applications Web. Je suppose qu'ils signifient principalement dans les formes et dans les URL, mais je n'ai jamais rien lu de plus qu'une bouchée sur le sujet.
EDIT : Bien sûr, maintenant que je pose cette question, je trouve quelques ressources sur le sujet:
- /programming/2374538/obscuring-database-ids
- /programming/1895685/should-i-obscure-primary-key-values
- http://joshua.schachter.org/2007/01/autoincrement.html
Ces liens ont satisfait ma curiosité, mais les messages SO n'ont pas beaucoup de votes et ne sont pas nécessairement centrés sur le sujet dans ce contexte, donc je ne sais pas quoi en penser, et certains d'entre eux affirment que le troisième le lien est faux. Je laisserai le reste de mon message intact:
Je comprends les différences entre l'obscurité et la sécurité, ainsi que la façon dont les deux peuvent fonctionner ensemble, mais je ne peux pas imaginer pourquoi cela serait nécessaire.
Y a-t-il une vérité à cela, est-ce juste de la paranoïa, ou est-ce simplement totalement faux?
Je peux penser à des façons de le faire, mais bien sûr, cela ajoute beaucoup de complexité au code de l'application. Dans quelles circonstances cela serait-il utile? Si c'est quelque chose que les gens font fréquemment, comment est-il généralement déployé? Hachage des identifiants? Autre chose? Cela semble beaucoup de travail pour pas beaucoup de sécurité supplémentaire. Je ne cherche pas de vraies solutions, je veux juste avoir une idée de comment / pourquoi les gens feraient cela dans le monde réel.
Est-ce vraiment considéré comme une "meilleure pratique" ou s'agit-il simplement d'une micro-optimisation de peu de valeur?
REMARQUE : je pense que quelques personnes ont peut-être eu une mauvaise idée: je ne suggère pas que les identifiants difficiles à deviner soient le seul mécanisme de sécurité, il y aurait évidemment les contrôles d'accès habituels. Supposons que ceux-ci sont en place et que le simple fait de connaître l'ID ou l'ID haché d'un enregistrement ne suffit pas pour accorder l'accès.