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

PHP & Base de données Discussion :

Protection de la chaine de connexion en PHP


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut Protection de la chaine de connexion en PHP
    Salut ; on lisant les démarche a suivre pour sécurisé son application web , un passage faisant état de sécurisé sa connexion sans donné un exemple.
    alors je me demande comment peut-on sécurisé une chaine de connexion PDO ?

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?php
    // On se connecte à la bdd
    try
    {
    $PARAM_hote='localhost'; // le chemin vers le serveur
    $PARAM_nom_bd='bddd'; // le nom de votre base de données
    $PARAM_utilisateur='root'; // nom d'utilisateur pour se connecter a modifier
    $PARAM_mot_passe='gladiator'; // mot de passe de l'utilisateur pour se connecter a modifier
    // connexion marche très bien avec affichage de msg erreure
     
    // Options de connexion
    $options = array
    (
    PDO::MYSQL_ATTR_INIT_COMMAND    => "SET NAMES utf8" ,  // indiquer à MySQL que echanger nos données en UTF8.
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION , 
    PDO::ATTR_PERSISTENT => true);
     
     
    $cbd = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe , $options  );
    }
     
    catch(PDOException $e)
    {
    echo 'Une erreur de connexion est survenue !'; $e->getMessage();
    die();
    }
     
    ?>

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Si le répertoire où se trouvent les informations de connexion est protégé contre les intrusions externes, ça me semble suffisant.

    D'une manière générale, les parties contrôleur et modèle sont à protéger rigoureusement et seule la partie vue est accessible au serveur Web (Apache par exemple). C'est le dispatcher appelé par le fichier d'index du site qui se charge d'orienter vers le programme à utiliser en fonction de l'url tapée. Si je me souviens bien, c'est le principe utilisé par Zend Framework (version 1.7 à 1.10 avec lesquelles j'avais travaillé un peu il y a deux ans).
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Salut ; le code ci-dessus est dans un fichier a part dans un répertoire nommé et protégé par .htaccess .


    D'une manière générale, les parties contrôleur et modèle sont à protéger rigoureusement et seule la partie vue est accessible au serveur Web (Apache par exemple).
    je ne suis pas encore au MVC.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Par principe je mettrais les infos de connexions dans un fichier à part qui se trouverais en dehors de la racine web (donc pas accessible via http) et non accessible via ftp.

    Un fichier dans un dossier protégé par un htaccess est non accessible mais reste sensible à une erreur de manipulation (genre suppression du htacess)
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Excuse mon ignorance mais:
    Par principe je mettrais les infos de connexions dans un fichier à part qui se trouverais en dehors de la racine web (donc pas accessible via http) et non accessible via ftp.
    tu veut dire que:
    Dossier mon application/
    index.php
    répertoire.js
    répertoire.css
    répertoire images
    Dossier connexion/
    fichier connexion

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Par exemple oui.

    Admettons sous windows , la racine web est : D:/www et bien tu place ton fichier par exemple dans E:/connexions/
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Un peu radical quand même !

    Voici l'arborescence dans Zend Framework 1.12 :
        quickstart
        |-- application
        |   |-- Bootstrap.php
        |   |-- configs
        |   |   `-- application.ini
        |   |-- controllers
        |   |   |-- ErrorController.php
        |   |   `-- IndexController.php
        |   |-- models
        |   `-- views
        |       |-- helpers
        |       `-- scripts
        |           |-- error
        |           |   `-- error.phtml
        |           `-- index
        |               `-- index.phtml
        |-- library
        |-- public
        |   |-- .htaccess
        |   `-- index.php
        `-- tests
            |-- application
            |   `-- bootstrap.php
            |-- library
            |   `-- bootstrap.php
            `-- phpunit.xml
    Et voici le vhost qui détermine l'accès à l'application web :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        <VirtualHost *:80>
            ServerName quickstart.local
            DocumentRoot /path/to/quickstart/public
     
            SetEnv APPLICATION_ENV "development"
     
            <Directory /path/to/quickstart/public>
                DirectoryIndex index.php
                AllowOverride All
                Order allow,deny
                Allow from all
            </Directory>
        </VirtualHost>
    On voit que la racine du site est le répertoire "public" qui ne contient que .htaccess et index.php. Tout le reste peut être protégé.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Un peu radical quand même !
    On est d'accord , c'était pour illustrer clairement le propos
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Re ; Zend Framework c'est du Big pour moi qui est en NOTEPAD ( tous a la main)
    @ grunk
    Admettons sous windows , la racine web est : D:/www et bien tu place ton fichier par exemple dans E:/connexions/
    Est ce que y a un tutoriel sur le déploiement d'une application sur un serveur ?
    sa m'aiderai a comprendre l'installation et le fonctionnement d'une application ainsi de comprendre au mieux la sécurité surtout par rapport au fichier sensible. merci

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    En fait à moins d'êtres sur un serveur dédié (à toi) tu auras du
    mal à réaliser ce placement dans un répertoire autre.
    Tu peux le contrôler avec ton FTP s’il te laisse accéder a ton site ou a tous les répertoires cg-bin etc

    Mais ta version de ton premier message est essentiel et parfait, car le TRY cache le message SQL d'erreur qui est souvent le cas en cas de panne SQL
    "erreur connections pour "durand" mot de passe "xxxx" base "labase

    Donc pour moi c'est parfait
    Christele

  11. #11
    Membre éprouvé Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Points : 1 105
    Points
    1 105
    Par défaut
    Citation Envoyé par christele_r Voir le message
    Bonsoir,
    En fait à moins d'êtres sur un serveur dédié (à toi) tu auras du
    mal à réaliser ce placement dans un répertoire autre.
    Cette affirmation est assez fausse... En parlant des plus connus en France, OVH, 1&1 et Amen, chez les 3 j'arrive à installer des projets ZF et Symfony en gardant la structure apache sur www|public|public_html.

    Soit ils proposent un répertoire www, public ou public_html par défaut, soient ils proposent un système comme pour les sous domaines chez OVH ou tu choisis le pointage. J'avais fait un article sur mon blog pour une config propre chez OVH.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Théocrite Voir le message
    Cette affirmation est assez fausse...
    Tu lis mal , je n'ais jamais écrit que des serveurs ne le proposaient pas
    Bon pas grave cela te permet de préciser les choses
    Christele

Discussions similaires

  1. [SQL-Server] Chaine de connexion php/sqlserver
    Par pulls dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/06/2013, 10h36
  2. Erreur connexion MySQL-PHP
    Par specialfox dans le forum Installation
    Réponses: 3
    Dernier message: 27/09/2005, 19h47
  3. [WebForms][Web.config] Stocker les chaine de connexion
    Par bossun dans le forum Général Dotnet
    Réponses: 15
    Dernier message: 19/08/2005, 15h34
  4. [C#] [Oracle] Problème de chaine de connexion
    Par didoboy dans le forum ASP.NET
    Réponses: 9
    Dernier message: 08/01/2005, 11h32
  5. ADO et chaine de connexion
    Par desperado dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/08/2004, 11h40

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