Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/11/2012, 11h23   #1
redoran
Membre émérite
 
Avatar de redoran
 
Homme Redouane Hamadouche
Développeur-Amateur
Inscription : juin 2010
Messages : 1 326
Détails du profil
Informations personnelles :
Nom : Homme Redouane Hamadouche
Âge : 41
Localisation : Algérie

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

Informations forums :
Inscription : juin 2010
Messages : 1 326
Points : 985
Points : 985
Envoyer un message via Skype™ à redoran
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 :
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();
}
 
?>
redoran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 14h39   #2
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
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 : 13 659
Points : 25 561
Points : 25 561
Envoyer un message via MSN à CinePhil
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 de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 15h03   #3
redoran
Membre émérite
 
Avatar de redoran
 
Homme Redouane Hamadouche
Développeur-Amateur
Inscription : juin 2010
Messages : 1 326
Détails du profil
Informations personnelles :
Nom : Homme Redouane Hamadouche
Âge : 41
Localisation : Algérie

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

Informations forums :
Inscription : juin 2010
Messages : 1 326
Points : 985
Points : 985
Envoyer un message via Skype™ à redoran
Salut ; le code ci-dessus est dans un fichier a part dans un répertoire nommé et protégé par .htaccess .


Citation:
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.
redoran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 15h12   #4
grunk
Modérateur
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 2 499
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 28
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 2 499
Points : 5 210
Points : 5 210
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 | Recherche CDI dev. Web sur Dijon et alentours.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 15h50   #5
redoran
Membre émérite
 
Avatar de redoran
 
Homme Redouane Hamadouche
Développeur-Amateur
Inscription : juin 2010
Messages : 1 326
Détails du profil
Informations personnelles :
Nom : Homme Redouane Hamadouche
Âge : 41
Localisation : Algérie

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

Informations forums :
Inscription : juin 2010
Messages : 1 326
Points : 985
Points : 985
Envoyer un message via Skype™ à redoran
Excuse mon ignorance mais:
Citation:
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
redoran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 15h53   #6
grunk
Modérateur
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 2 499
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 28
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 2 499
Points : 5 210
Points : 5 210
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 | Recherche CDI dev. Web sur Dijon et alentours.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 16h20   #7
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
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 : 13 659
Points : 25 561
Points : 25 561
Envoyer un message via MSN à CinePhil
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 :
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 de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 16h27   #8
grunk
Modérateur
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 2 499
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 28
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 2 499
Points : 5 210
Points : 5 210
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 | Recherche CDI dev. Web sur Dijon et alentours.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 11h22   #9
redoran
Membre émérite
 
Avatar de redoran
 
Homme Redouane Hamadouche
Développeur-Amateur
Inscription : juin 2010
Messages : 1 326
Détails du profil
Informations personnelles :
Nom : Homme Redouane Hamadouche
Âge : 41
Localisation : Algérie

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

Informations forums :
Inscription : juin 2010
Messages : 1 326
Points : 985
Points : 985
Envoyer un message via Skype™ à redoran
Re ; Zend Framework c'est du Big pour moi qui est en NOTEPAD ( tous a la main)
@ grunk
Citation:
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
redoran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2012, 17h15   #10
christele_r
Membre Expert
 
Avatar de christele_r
 
Femme Christele Rubneau
Inscription : novembre 2009
Messages : 1 054
Détails du profil
Informations personnelles :
Nom : Femme Christele Rubneau
Âge : 40
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 1 054
Points : 1 427
Points : 1 427
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
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2012, 18h39   #11
Théocrite
Membre confirmé
 
Homme Thomas Dutrion
Développeur Web
Inscription : février 2009
Messages : 157
Détails du profil
Informations personnelles :
Nom : Homme Thomas Dutrion
Âge : 24
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2009
Messages : 157
Points : 284
Points : 284
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.
Théocrite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2012, 19h21   #12
christele_r
Membre Expert
 
Avatar de christele_r
 
Femme Christele Rubneau
Inscription : novembre 2009
Messages : 1 054
Détails du profil
Informations personnelles :
Nom : Femme Christele Rubneau
Âge : 40
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 1 054
Points : 1 427
Points : 1 427
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
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h44.


 
 
 
 
Partenaires

Hébergement Web