IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Gérer les droits Admin/Simple users/Personnes externes


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 254
    Points : 101
    Points
    101
    Par défaut [Sécurité] Gérer les droits Admin/Simple users/Personnes externes
    Bonjour à tous!

    Ma question se porte sur quelque chose d'assez général. Je crée un intranet (qui fait aussi office d'extranet) en PHP et j'utilise une base MySQL de EasyPHP et j'ai donc plusieurs TYPES d'utilisateurs : admin, userA, userB, userC, userD...

    Chacun de ces types ont des droits différents et se logge avec un pseudo et un mot de passe.
    J'ai commencé par la partie administrateur (je ne sais pas si j'ai bien fait) qui a tous les droits (créer, modifer, supprimer des tables).
    Les types d'utilisateurs UserA, B, C, etc. ont des droits restreints sur la base, différents les uns des autres. En fait ils peuvent voir certaines pages de l'intranet, et ont des droits limités sur celles-ci.

    J'aurais trois questions :
    - Comment faire l'aiguillage des utilisateur à la connection?
    - Pour les pages affichés, vaudrait-il mieux que je refasse chaque page pour chaque type d'utilisateur, ou bien je garde la même page et que je fasse des test à chaque fois pour savoir si telle ou telle partie sera visible, ou bien tel ou tel bouton sera disponible?
    - Pour la sécurité, comment gérer cela?

    C'est assez généraliste comme question, mais il existe des tas d'intranet, donc je suppose qu'on ne réinvente pas la roue à chaque fois... Donc quelle est la démarche type pour ce genre de situation?

    Merci à vous

  2. #2
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    A la connection tu mets le niveau de sécurité/D'accès de l'utilisateur (suivant comment tu l'as défini : texte, chiffre etc.) dans une variable de session.

    Ensuite suivant cette session tu génères un menu qui ne contiendra que les pages associées au niveau de sécurité, et pour renforcer le tout (au cas ou des petits malins connaitraient le nom des pages) sur chaque page tu commences par une fonction qui redirige ailleurs si le niveau de sécurité de la page qu'il cherche à afficher est inférieur à celui dans la session.

    J'espére avoir été assez clair et que ça te permettra de commencer à mettre en place ton système

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 254
    Points : 101
    Points
    101
    Par défaut
    Oki d'acki, j'ai saisi l'algo Merci beaucoup!

    Par contre le truc c'est que l'admin voit les mêmes pages que des utilisateurs normaux, mais avec des droits différents sur cette page. Ex : le bouton "modifier table" ne sera visible que par l'admin, etc.

    Alors à votre avis (je m'adresse à tout le monde) est ce qu'il faut que je crée plusieurs version d'une même page (une pour l'admin où il y aura le bouton "modifier table" et une pour le simple utilisateur sans ledit bouton) ou bien une seule page mais en faisant un test pour l'affichage du bouton ou non.

    Sachant qu'il y a des TAS de différences, donc un test à chaque fois c'est pas terrible non plus, et que c'est pas très sécurisant (il suffit que le test foire pour X raison...)

  4. #4
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Si vraiment les différences sont énooooooormes entre les pages à la limite fait 1 page par type d'utilisateur mais tu vas en ch*** si tu dois modifier 15 fois tel bout de texte ou tel autre truc en dur sur chaque page.

    Si j'étais toi je ferai une petit fonction toute bête (jte file l'algo)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fonction verif_droits(droit_requis, droit_utilisateur,compostant)
    {
         si droit_requis <= droit_utilisateur
          renvoyer vrai
         sinon renvoyer faux
    }
    Et dans ta page avant d'afficher un bouton par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    si verif_droit(admin,visiteur) afficher bouton_admin sinon afficher bouton_visiteur
    PS: si tu fais bien ton test ya aucune raison qu'il foire

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 254
    Points : 101
    Points
    101
    Par défaut
    Oki d'ack Merci pour l'algo!

  6. #6
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    De rien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gérer les droits d'un compte invité
    Par Super2006 dans le forum Windows XP
    Réponses: 3
    Dernier message: 02/10/2007, 01h33
  2. donner droit admin à un user
    Par MadCat34 dans le forum DB2
    Réponses: 1
    Dernier message: 29/08/2007, 14h59
  3. [SQL] Gérer les droits sur des modules !
    Par furth dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/06/2007, 12h01
  4. Gérer les droits des utilisateurs
    Par rsc dans le forum Langage
    Réponses: 6
    Dernier message: 22/08/2005, 20h57
  5. Gérer les droits d'un dossier/RPC indisponible
    Par xant dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 22/08/2005, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo