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é] Gestion des fonctionnalités autorisées aux utilisateurs


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut [Sécurité] Gestion des fonctionnalités autorisées aux utilisateurs
    Bonjour,

    je conçois actuellement une application en local (qui ne nécessite donc pas trop de sécurité )comportant une quinzaine de fonctionnalités. Or, chaque utilisateur peut avoir acces à 1, 2, 3 ou plus fonctionnalités ( ces droits sont geres dans ma base de données.).
    Ma question est donc : comment faire au niveau du code pour que les fonctionnalités apparaissent ou pas selon les droits?
    C'est un peu le meme principe que sur dvp : par exemple le tableau de bord n'apparait pas si l'on est pas connecté.

    Dans un autre projet, j'avais fait des profils Admin, user et invite et dans ma page je faisais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    switch droits
    case : admin 
    afficher menu_admin ; //...etc
    Mais la je ne sais pas trop comment faire puisqu'il n'y a pas de profils.

    Est-ce que ce serait une bonne solution que de verifier avant chaque affichage de fonctionnalité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if ($_session['droitsfonctionnalite']==true)
    afficherfonctionnalite();
    ?

    Pour explication : Dans ma base il ya une table etre_authorise associant une fonctionnalite et un utilisateur ainsi que true (authorisé) ou false.

    Comme vous le voyez je suis un peu perdue...
    Excusez moi si je me suis mal expliquée et n'hésitez pas à me demander.
    Merci de votre aide.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Ben ta solution me parait convenir. Puisqu'en effet, tes fonctions ne gèrent pas les droits directement. Tu dois donc toi meme définir une couche d'accès à ces fonctions directement dans ton code à l'aide des variables session par exemple.

  3. #3
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    Pour ma part , j'ai créé une application avec plusieurs niveaux d'administration.
    A chaque utilisateur est attribué un niveau 0,1,2,3,4
    qui est enregistré avec son profil dans un champ user_level que je récupère dans la session.

    Puis dans le code je vais écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if($_SESSION['user_level'] > 2){
    // le code ou la fonction pour les admins niveau 3 et 4 
    }

  4. #4
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    La solution qui offre le plus de possibilité est d'utiliser les flags binaire.

    Avantages :

    Ne stocker qu'une seule donnée dans la BDD/SESSION.
    Facilité d'ajout/suppression/vérification de droit. (Opérations binaires)
    Toute les combinaisons possible

    Inconvénients :

    Limité à 32 bit (généralement)

Discussions similaires

  1. Gestion des mots de pass utilisateur
    Par philguio dans le forum VB.NET
    Réponses: 3
    Dernier message: 05/05/2007, 22h42
  2. Réponses: 18
    Dernier message: 13/04/2007, 12h48
  3. [Sécurité] Sécurité : gestion des comptes admin
    Par ChriGoLioNaDor dans le forum Langage
    Réponses: 4
    Dernier message: 13/03/2007, 19h37
  4. Réponses: 4
    Dernier message: 18/10/2005, 09h54
  5. [Sécurité]Gestion des accès dans plusieurs bases
    Par vincentj dans le forum Débuter
    Réponses: 1
    Dernier message: 05/01/2005, 14h19

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