5 votes

Est-il toujours nécessaire de cacher à l'utilisateur l'identifiant généré par mysql ?

Est-ce un risque pour la sécurité que de montrer à l'utilisateur l'identifiant réel, incrémenté automatiquement par la base de données ? Pouvez-vous donner des exemples pratiques de ce que les gens peuvent faire de dangereux avec cela ?

5voto

Non, il est utilisé dans de nombreux contextes.

Si votre site web est vulnérable d'une autre manière, par exemple par injection SQL ou XSS, ils peuvent utiliser l'identifiant pour faire quelque chose de nuisible. Mais jamais avec l'identifiant seul.

En regardant votre profil ici sur SO, votre identifiant est le suivant 243414

3voto

Carl Zulauf Points 12826

Je ne vois pas pourquoi le fait d'exposer l'identifiant de la ligne à l'utilisateur est intrinsèquement peu sûr. Pratiquement tous les frameworks web le font à un moment ou à un autre.

L'utilisation d'un numéro d'identification entier incrémentiel permet d'obtenir des informations sur les données sous-jacentes. Le plus important est qu'ils sont généralement séquentiels, de sorte qu'un attaquant potentiel peut prédire les identifiants qui seront probablement valides. Cependant, si vous permettez à un utilisateur de demander des données à votre application pour un identifiant qu'il n'a peut-être pas le droit de voir, alors il y a probablement des problèmes de sécurité plus importants dans votre application. Si vous restreignez correctement l'accès, ou si l'accès aux données d'enregistrement n'a pas besoin d'être restreint, l'exposition de l'identifiant ne pose pas beaucoup de risques (voire aucun).

2voto

Utku Yıldırım Points 1680

Il n'est pas dangereux à lui seul.

Si votre système est victime d'un exploit, nous pouvons l'aider.

Mais n'oubliez pas que si votre système est vulnérable, toute information est dangereuse.

0voto

Seder Points 2675

Il peut parfois s'agir d'une tragédie

Disons que j'ai un profil sur votre application et que j'ai mes photos sur ce profil. Et lorsque je supprime l'une d'entre elles, le lien est le suivant

http://www.yourapp.com/myprofile/pictures/delete_pic.php?id=5

et voici ma photo imaginez que la photo 19 n'est pas la mienne

http://www.yourapp.com/myprofile/pictures/delete_pic.php?id=19

Ici, je vais supprimer la photo d'un autre utilisateur Si vous avez besoin de montrer ces identifiants à l'utilisateur, cryptez-les à l'affichage et décryptez-les à l'utilisation. vous pouvez utiliser

base64_encode() & base64_decode()

mais c'est très simple et peut être obtenu vous pouvez faire votre propre algorithme ou faire quelque chose pour générer différentes sorties à partir de base64 comme

base64_encode($id+7); or loops

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X