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

Symfony PHP Discussion :

Sécurité avec sfGuardPlugin


Sujet :

Symfony PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut Sécurité avec sfGuardPlugin
    Bonjour,

    J'essaye d'utiliser le plugin sfGuardPlugin pour sécuriser un site créer avec Symfony.
    Je ne sais pas si c'est la solution la plus simple, mais je n'arrive pas du tout à utiliser ce plugin... J'ai juste réussi à l'installer.

    J'ai essayer de suivre plusieurs tuto (en anglais) et je commence a perdre espoir.

    Est ce que quelqu'un pourait m'aider sur toutes les étapes à suivre svp.

    J'utilise sfGuardPlugin avec Wamp ou j'ai installé Pear et Symfony 1.2.7.

    Merci d'avandce pour toute l'aide que vous pourez m'apporter

    Cordialement

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Je l'utilise sur mon site, quel est ton probleme ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut
    Mon probleme est l'utilisation de ce plugin.

    Je n'ai jamais fait de site web avec Symfony, je ne sais pas dutout l'utiliser (a part créer des modules).

    Dans le cadre de mon projet de fin d'année de BTS je doit sécuriser un site web. Il n'y aura qu'un seul utilisateur avec tout les droits.
    J'ai donc fait des recherches pour savoir comment sécuriser un site crée avec Symfony. Et la seul reponse convenable que j'ai trouvé était d'utiliser le plugin sfGuardPlugin.

    Mais je ne sais pas si c'est la solution la plus simple.

    Si vous avez une autre solution (plus simple), dites le moi.

    Sinon, pour l'instant, j'ai juste installé le plugin, je ne sais pas quoi faire pour mettre en oeuvre la sécurité.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    sfGuard est un bon plugin pour sécurisé ton site.

    As-tu suivi le tutoriel ? il est tres bien fait.
    http://www.symfony-project.org/plugins/sfGuardPlugin

    Dis moi où tu coinces précisément car il y a tout dans ce tutoriel étape par étape.

  5. #5
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut
    Merci, je m'y met de suite et je te tient au courant

  6. #6
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut
    Au moment d'éxécuter la commande pour créer un utilisateur par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ symfony guard:create-user fabien $ecret
    L'erreur suivante apparait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unable to open PDO connection [wrapped: SQLSTATE[42000] [1049] Unknown database 'projet_afficheur']

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    A priori ta base de données n'existe pas, l'as-tu créée ?

  8. #8
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut
    J'avai fait une erreur dans le nom de la base !

    Maintenant il m'affiche l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unable to execute INSERT statement. [wrapped: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'projet_afficheur.sf_guard_user' doesn't exist]
    J'ai créé une table projet_afficheur.sf_guard_user mais je ne connais pas le nombre de champs qu'il faut !

    En revanche, le probleme est la base de données...
    Il n'existe pas un autre moyen de sécuriser le site sans base de données ?

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Tu n'es pas obligé d'avoir une base de données surtout si tu as un seul utilisateur avec tous les droits. Un formulaire login et password static est largement suffisant.

    Pour créer la base de données il faut utiliser les commandes en ligne de symfony.

  10. #10
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut
    Effectivement, je ne vais avoir qu'un seul utilisateur.
    Donc par exemple, je peut faire un fichier php qui contiendrais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    	$log = 'admin';
    	$mdplog = 'test';
    	if ($_POST['Login'] == $log && $_POST['Mdp'] == $mdplog)
    	{
    		echo "Accès autorisé. Bienvenue";
    	}
    	else
    	{
    		echo "Accès refusé, vous n'avez pas le droit d'entrer dans cette zone";
    	}
    ?>
    Si c'est le cas, ça m'arangerais beaucoup...

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Ben oui tu peux faire ca, c'est beaucoup plus simple.

  12. #12
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut
    D'accord, merci.

    L'application va contenir plusieurs module et si le login et mot de passe sont bon, il faudra appeler un certain module (je suppose que Symfony fonctionne de cette façon).

    Dans ce cas comment faut t'il que j'integre ce fichier dans l'application ?

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Ou la c'est plus compliqué que ca, si tu utilises symfony et tu dois passer par son module authentification.

    Petite question pourquoi dois-tu impérativement utiliser symfony ?
    Ca me parait surdimensionner pour ton projet.

    Si j'étais toi je commencerais par les tutoriaux Askeet et Jobeet.
    Sans ca tu vas etre perdu.

  14. #14
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut
    Je m'occupe juste de sécuriser le site, celui qui met en oeuvre tout le site a choisit d'utiliser Symfony.

    A mon gout aussi c'est completement inutile pour ce que l'on a à faire mais je n'ai pas le choix, il faut que je m'adapte.

    Dans ce cas, si c'est compliqué à intégré, est-il possible de mettre un htacces dans le module que je doi sécuriser ? Ou existe t-il d'autre solutions plus simple ?

    Je doit absolument sécuriser se site pour la fin de la semaine....

  15. #15
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Okay je comprends, ca me parait court. C'est vrai que sfGuard est la meilleurs solution mais cela demande de connaitre un minimum symfony.

    Je te conseille alors de faire un nouveau module dans symfony que tu peux appeler auth. Créer un template avec 2 champs login et password plus submit. Dans ton action si le login et mot de passe sont okay, tu donnes l'acces au site a l'utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    class Auth extends sfActions
    {
      public function executeLogin($request)
      {
        if ($request->getParameter('login') == 'foobar' && $request->getParameter('password') == 'foobar')
        {
          $this->getUser()->setAuthenticated(true);
        }
      }
     
      public function executeLogout()
      {
        $this->getUser()->setAuthenticated(false);
      }
    }
    http://www.symfony-project.org/book/...ion%20Security

  16. #16
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut
    J'ai 2 modules
    • Auth

    • Acceuil


    Pour accéder au module Acceuil, je doit m'identifier à l'aide du module Auth.

    Dans le module Auth j'ai donc 2 fichier :

    Le template :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <html>
    	<head><title>Cinéma Le Parnal - Identification</title>
    	</head>
     
    	<body BGCOLOR = white>
    		<br>
    		Identification :
    		<br>
    		<form action = "auth.php" method = "executeLogin($request)">
    			<!-- Champs de connexion -->
    			Login : <input type = "text" NAME = Login> <!-- Variable 1 stockée dans a -->
    			<br>
    			Mot de passe : <input type = "text" NAME = Mdp> <!-- Variable 2 stockée dans b -->
    			<br>
    			<br>
    			<!-- Bouton de connexion -->
    			<input type = "submit" NAME = "connexion" value = "Connexion">
    		</form>	
    	</body>
    </html>
    Et le auth.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class Auth extends sfActions
    {
     	public function executeLogin($request)
    	{
        		if ($request->getParameter('login') == 'Admin' && $request->getParameter('password') == 'password')
        		{
          			$this->getUser()->setAuthenticated(true);
        		}
    		else
    		{
    			window.confirm("Mot de passe ou login incorrect, veuillez recommencer");
    		}
      	}
     
     	public function executeLogout()
      	{
        		$this->getUser()->setAuthenticated(false);
      	}
    }
    Pour ce logger, il faut appeler la fonction executeLogin($request) de la classe Auth ?
    L'appel de cette fonction suffit à avoir acces au module Acceuil ?

  17. #17
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Ca ressemble a cela mais tu n'utilises pas du tout la syntaxe du Framework Symfony. Ton template c'est du PHP pure pas du Symfony.

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 22
    Par défaut
    Hello,

    batataw a deja tout dis.

    Je peux te conseille egalement le lien suivant pour mettre en place ta securisation.

    http://trac.symfony-project.org/wiki...skeet/trunk/D5


    Bon courage

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 117
    Par défaut
    Juste une question cet utilisateur, si il a tout les droits c'est pour acceder à la partie back-office ou pour faire autre chose?

  20. #20
    Membre éclairé
    Homme Profil pro
    Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Inscrit en
    Septembre 2008
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Spécialiste en Maintenance Applicative / Developpeur C#, VB, PL-SQL, T-SQL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 206
    Par défaut
    Nan en fait, il faut juste sécurise un module qui permet de gérer une base de données (comme sur un forum, pour pouvoir poster, il faut se logger).

    J'ai suivit tout les tuto mais je n'arrive rien à faire... c'est vraiment pas pour moi symfony

    J'ai compris une partie du principe d'identification (utiliser setAuthenticated(true), etc.) mais je n'arrive pas a faire un template avec 2 champs (login et mot de passe) et un bouton.

    Je ne comprends pas non plus comment autoriser l'acces d'un module grace à mon module Auth...

Discussions similaires

  1. Problème de sécurité avec MS Access
    Par jpduches dans le forum Sécurité
    Réponses: 2
    Dernier message: 13/12/2010, 16h44
  2. [Sécurité] A propos de la sécurité avec J2EE
    Par kodo dans le forum Java EE
    Réponses: 3
    Dernier message: 03/06/2006, 22h45
  3. [Sécurité] Problème de sécurité avec l'upload
    Par Gwipi dans le forum Langage
    Réponses: 2
    Dernier message: 14/04/2006, 11h54
  4. [Sécurité] Sécurité avec .HTACCESS
    Par BRAUKRIS dans le forum Langage
    Réponses: 3
    Dernier message: 02/04/2006, 01h01
  5. sécurité avec C
    Par chiheb366 dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 14/10/2005, 13h30

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