Page 1 sur 1

Droits selon utilisateurs

Posté : 08 déc. 2013, 19:39
par Yoann35
Bonjour,

Je suis à la recherche de la meilleure méthode pour gérer des autorisations sur des utilisateurs d'un intranet.

J'ai une base de données des utilisateurs avec la liste des personnes qui ont accès avec plusieurs champs qui détermine les droits qui leurs sont attribués.

Aujourd'hui voici la méthode :
Lorsque qu'un utilisateur se connecte je met en session ces différents droits qui vont me permettre de filtre les recherches, afficher des boutons [modifier] pour certaines fiches et aussi vérifier au moment de la modification si j'ai bien les droits nécessaires.

Un exemple précis.
Je suis l'utilisateur LAMBDA A
Je cherche dans une base de données comprenant 1000 fiches, je n'ai le droits de voir que les résultats qui sont en région Bretagne.
J'affiche une fiche SOCIETE MALOUINE, j'ai le droit de la voir (puisqu'en Bretagne) mais aussi de la modifier car elle appartient à mon département. Je dois donc avoir un bouton [modifier], ce qui n'aurait pas été le cas pour une fiche du Morbihan.

Seulement voilà est ce que les sessions sont assez sécurisées ou pas.
Quelles sont les risques qu'une personne puisse modifier une information session (par exemple passer de région Bretagne à Normandie) ?

J'ai vu sur d'autres outils que les droits étaient vérifiés au moment de la validation de la fiche. Je trouve cela contraignant en terme de ressources mais peut être nécessaire si les sessions ne sont pas assez sécurisées.

Est ce que vous avez mis en place d'autres façon de faire ?

Merci d'avance si vous avez des pistes.

Re: Droits selon utilisateurs

Posté : 08 déc. 2013, 20:26
par sirakawa
J'ai l'impression que n'importe quel malfaisant pourrait aisément modifier n'importe quoi dans ta BDD. Mais peut-être ai-je lu trop vite.
je serais partisan de fragmenter et de jouer sur Grant de SQL...

Re: Droits selon utilisateurs

Posté : 08 déc. 2013, 21:57
par xTG
J'ai l'impression que n'importe quel malfaisant pourrait aisément modifier n'importe quoi dans ta BDD. Mais peut-être ai-je lu trop vite.
je serais partisan de fragmenter et de jouer sur Grant de SQL...
Il ne parle pas de compte SQL.
Est ce que vous avez mis en place d'autres façon de faire ?
Un système de droit se décompose en plusieurs droits : lecture et écriture.
Après tu peux fragmenter ces droits en des sous-catégories sans souci.
J'ai vu sur d'autres outils que les droits étaient vérifiés au moment de la validation de la fiche. Je trouve cela contraignant en terme de ressources mais peut être nécessaire si les sessions ne sont pas assez sécurisées.
Les droits doivent être vérifiées dès qu'une action est demandé.
La consultation requiert des droits.
La modification requiert des droits.
Tu as donc au minimum deux vérifications à faire.

Quant aux sessions, sécurisées ou non cela dépend de ton code au final.
C'est comme le fromage, il y a des trous ou non. ;)

Re: Droits selon utilisateurs

Posté : 13 déc. 2013, 23:05
par Yoann35
Lors d'une modification d'une table, vous faites toujours plusieurs requêtes ?

Dans la table des autorisations : quels sont les droits accordés à cet utilisateur
Puis la requête de modification en elle même ?
Cela veut dire que vous auriez fait 4 requêtes là où je n'en fait que 2.

Dans mon cas j'ai un seul fichier pour un visiteur et un admin
Je met les balises FORM dans le cas d'un admin + un bouton modifier
Dans le cas d'un visiteur je met uniquement un bouton fermer.

Quel est le risque réel de mettre les droits en session (genre $_SESSION['Droit']="admin").
Est ce que côté client il y a possibilité de changer une variable session ?

Re: Droits selon utilisateurs

Posté : 14 déc. 2013, 19:23
par orenx22
Juste une question, est-ce que tes filtres de sélection jouent exclusivement sur la localisation de l'utilisateur ?

Re: Droits selon utilisateurs

Posté : 16 déc. 2013, 01:41
par Yoann35
Désolé je ne comprend pas. Mes filtres n'ont rien à avoir avec la localisation de l'utilisateur.

J'ai l'impression d'être le seul à mettre en session les droits des utilisateurs.
Je trouve cela très pratique, cela permet de limiter les requêtes à la base et de pouvoir utiliser ces droits partout (menu spécifique, explication spécifique, bouton spécifique).
La seule faille de ce système serait la possibilité pour un utilisateur de changer ses variables sessions comme passer de $_SESSION['Droit'] = "visiteur" en "admin".
Bien sûr ce n'est qu'un exemple, mes droits ne se bornant pas à ce statut.

Re: Droits selon utilisateurs

Posté : 16 déc. 2013, 08:32
par xTG
Ahah attention jamais je n'ai parlé de faire une requête à chaque fois pour vérifier les droits.
Seulement le fait de vérifier à chaque action les droits.
Utiliser une variable de session est tout à fait recommandé pour un système qui ne demande pas une écoute des modifications des droits tout le temps.

Les sessions en tant que telle n'ont pas de faille, les trous viennent d'ailleurs.
Un exemple ici : http://www.segmentationfault.fr/securit ... sions-php/

Re: Droits selon utilisateurs

Posté : 17 déc. 2013, 12:44
par Yoann
Ok merci pour l'info.
Mes sessions ne risquent rien, mes includes étant en dur et les inclusions MySQL censées être impossible.

Merci pour votre aide.