Mot de passe dans une page PHP [Résolu]

Signaler
Messages postés
144
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
28 août 2020
-
Messages postés
144
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
28 août 2020
-
Bonjour à tous, :)

Je viens de lire plusieurs articles sur le codage des mots de passe en PHP, et notamment en utilisant les fonctions password_hash() et password_verify() (PHP 5.5 mini). J'ai compris le principe de fonctionnement pour vérifier un mot de passe saisie dans un formulaire, par rapport à celui contenu dans une base de données.

Là où subsiste le flou pour moi c'est :
* Pour se connecter à la base de donnée SQL, il faut saisir dans le code PHP le mot de passe SQL.
* Si je ne veux pas utiliser une base de données pour stocker les mots de passe, mais vérifier directement dans le code PHP le mot de passe récupéré d'un formulaire (dans le cas où je n'ai qu'un seul utilisateur).

Ces 2 cas pose en fait le même problème : l'écriture du mot de passe directement dans le code PHP. Est-ce que c'est risqué ? Si on peut attaquer une base de données, je suppose qu'on peut aussi attaquer une page PHP pour en récupérer le mot de passe non ?
Donc, comment procéder en sécurité pour ces deux cas d'utilisation ?

Merci d'avance :)

2 réponses

Messages postés
14764
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2021
151
si c'est juste pour une page et un seul utilisateur, mettre le mdp en clair (si les données protégées ne sont pas critiques) et faire un simple test d'égalité est acceptable.
Si tu as plusieurs utilisateurs, il est préférable de mettre en place une base de données (même sous forme de fichier) avec des mdp hashés.
Messages postés
144
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
28 août 2020
3
Il n'est donc pas risqué d'écrire en clair le mot de passe dans une page PHP ?
De même pour une connexion SQL :
$db = mysql_connect('localhost', 'login', 'password'); 


Merci :)
Messages postés
14764
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2021
151
Le code PHP n'étant pas visible par les visiteurs, le risque est plutôt limité.
Messages postés
144
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
28 août 2020
3 >
Messages postés
14764
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2021

Ok. Mais le contenu d'une base SQL n'est pas sensé être visible par le visiteur non plus.
Quelle est la différence ?

Je te crois, mais c'est juste par curiosité :)
Merci
Messages postés
14764
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2021
151
Mettre le mdp directement dans le code PHP peut être plus simple, mais le mettre en base de données permet une plus grande souplesse, tout est question de al finalité.

Si tu n'aura qu'un seul et unique utilisateur qui peut aisément modifier le code PHP pour modifier son mdp, il peut être pluis simple de faire le test directement en PHP, si tu as plusieurs utilisateurs ou des utilisateurs peu au fait du PHP, le mettre en base de données sera plus pratique (avec les protections associées évidemment).
Messages postés
144
Date d'inscription
dimanche 15 février 2009
Statut
Membre
Dernière intervention
28 août 2020
3 >
Messages postés
14764
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2021

Ok. Merci de tes réponses :)