Bonjour,
Je suis en train de concevoir un extranet en PHP (basé sur CakePHP) donc avec un espace membre et des données spécifiques à chaque utilisateur.
Je voulais savoir comment vous gérez d'empêcher un utilisateur d'accéder à des données qui ne lui appartiennent pas?
Par exemple, j'ai vu que pour éditer un post sur ce forum, l'id du post est renvoyé au serveur par une requête GET, il est alors très facile de modifier l'id et d'éditer un post qui n'est pas le sien...ce qui, ce forum étant bien développé, ne fonctionne pas bien sur
Lorsqu'il s'agit d'un simple post d'un utilisateur, il est assez facile de vérifier si le post appartient bien à l'utilisateur...mais lorsque le model de la BD se complexifie un peu, avec par exemple plusieurs tables et diverses relations entre ses tables (0 à n, 1 à n, n à m), ça devient assez lourd de faire tout le chemin pour remonter à l'utilisateur...
Donc j'ai pensé à mettre un champs (owner par exemple) contenant id de l'utilisateur, dans les tables contenant les données spécifiques à l'utilisateur, ce qui me permet de vérifier très facilement si l'utilisateur loggué est en train d'éditer/supprimer des données qui lui appartiennent bien.
Est-ce que cette façon vous parait correcte?
merci
Partager