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 :

Sécuriser un accès à une bd SQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Aucun
    Inscrit en
    Avril 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Aucun

    Informations forums :
    Inscription : Avril 2008
    Messages : 78
    Par défaut Sécuriser un accès à une bd SQL
    Bonjour à tous,

    Je suis nouveau dans le développement Web. J'ai conçu une application sous JavaScript et je souhaite la rendre accessible comme un site de façon réglementée.
    Côté serveur, j'ai construit une base de données MySQL qui enregistre notamment les identifiants et mots de passe des futurs utilisateurs. Pour des raisons de sécurité, je souhaite votre avis sur la construction suivante que j'ai eu péniblement à obtenir à partir des infos du net :

    Je crée un répertoire dans lequel j'enregistre un fichier PHP contenant le login et le mot de passe de la base de données sensible. Je crée également un fichier access.txt dans lequel j'enregistre le Login et le mot de passe pour accéder à ce répertoire (Login;MdP). Je construis un fichier .htaccess me permettant de restreindre l'accès.
    Le fichier PHP dédié à l'authentification des utilisateurs ouvre la base de données en utilisant un pdo en transmettant les variables contenant identifiants et mots de passe.

    Pensez-vous que cette structure est correcte et sécure ?

    Par avance merci.

    PS: J'ai une autre question qui concerne l'intérêt de crypter les mots de passe. Mais une chose à la fois !

  2. #2
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 581
    Par défaut
    Salut,

    Ton mot de passe doit-être crypté afin de garantir la sécurité de l'information, ensuite dans le répertoire tu dois empécher l'accès aux fichiers directement et faire une vérification par identification (qui doit être en base de données et crypté). Dans les framework actuel le serveur redirige vers un fichier index dans le dossier public avec les droits puis ce fichier va rediriger selon les permissions

    Un exemple ici https://github.com/linxcodev/simple-crud-login (attention c'est juste un exemple le code est obsolète c'est pour l'idée d'organisation)

  3. #3
    Membre confirmé
    Homme Profil pro
    Aucun
    Inscrit en
    Avril 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Aucun

    Informations forums :
    Inscription : Avril 2008
    Messages : 78
    Par défaut
    @kevin254kl
    Merci de ton intervention, je vais consulter le code et réfléchir.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    SURTOUT, n'utilise pas le code proposé dans le lien : il est complètement obsolète !!!

    De plus, il ne faut pas crypter (réversible), mais hasher (irréversible) les mots de passe.
    Voir :
    • password_hash()
    • password_verify()
    Dernière modification par Invité ; 27/11/2019 à 09h38.

  5. #5
    Membre confirmé
    Homme Profil pro
    Aucun
    Inscrit en
    Avril 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Aucun

    Informations forums :
    Inscription : Avril 2008
    Messages : 78
    Par défaut
    @jreaux62
    Bonsoir,

    Merci de l'info. J'ai bien compris que les mots de passe sont hachés et stockés dans la base de données contenant les comptes utilisateurs.
    Mon autre problème est simple. Il survient lors de l'ouverture de cette base de données sensible avec un PDO. Or, le PDO exige le mot de passe en clair. Est-ce que le fait de le stocker dans un fichier PHP placé dans le répertoire protégé par un fichier .htaccess est suffisamment secure. Je transmet donc une variable à la place.

    Bonne soirée.

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 417
    Par défaut
    Oui c'est sécurisé si tu mets la mention "deny from all" dans le .htaccess qui protège ton répertoire. Une autre option est de mettre les fichiers sensibles en dehors du répertoire www mais ce n'est pas toujours pratique.

  7. #7
    Membre confirmé
    Homme Profil pro
    Aucun
    Inscrit en
    Avril 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Aucun

    Informations forums :
    Inscription : Avril 2008
    Messages : 78
    Par défaut
    Bonjour,

    @ABCIWEB
    La mention "deny from all" ne refuse-t-elle pas tout accès ?
    En fait, je veux simplement que le fichier détenant le mot de passe (dans une variable) en clair ne soit accessible qu'aux scripts PHP et à moi-même bien évidemment si je veux le changer.
    Les interrogations sont celles d'un néophyte et je comprends qu'elles peuvent surprendre.
    Lorsque tu dis de mettre les fichiers sensibles en dehors du répertoire www, que veux-tu dire ?
    Pour le moment, l'application est installé en local de manière classique avec MAMP. J'y accède par localhost:8888/ViktorIDE/JSViktorIDEHome.html. Il s'agit en fait de la page de connexion.

    Merci de ton aide.

  8. #8
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 417
    Par défaut
    deny from all permet d'interdire tout accès au répertoire depuis l'extérieur du site, mais php pourra y accéder, de même que toi puisque tu as les droits pour administrer le serveur.

    Ou si tu utilises un framework qui met certains fichiers en dehors de www (ce qui interdit également leur accès depuis l'extérieur du site), fais de même pour rester cohérent.

  9. #9
    Membre confirmé
    Homme Profil pro
    Aucun
    Inscrit en
    Avril 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Aucun

    Informations forums :
    Inscription : Avril 2008
    Messages : 78
    Par défaut
    @ABCIWEB
    Merci de ton aide. Je vais poursuivre mon code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Acces à une base sql par 2 applications
    Par laclac dans le forum Débuter
    Réponses: 1
    Dernier message: 20/09/2009, 12h17
  2. Réponses: 2
    Dernier message: 18/11/2008, 22h56
  3. accès à une BD SQL à travers un fichier aspx
    Par rym_adel dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/04/2008, 17h09
  4. sécuriser l'accés à une application
    Par grungy-soul dans le forum VB.NET
    Réponses: 6
    Dernier message: 26/03/2008, 20h53
  5. sécurisation des accès à une table
    Par mirela dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/09/2006, 15h19

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