Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi ne pas utiliser les utilisateurs et les autorisations MySQL intégrés pour un site Web ?

Les utilisateurs MySQL sont destinés aux utilisateurs du serveur MySQL lui-même. Ces utilisateurs doivent être réservés à l'usage exclusif de l'administrateur du serveur ou des applications nécessitant l'exécution d'un utilisateur (attribuez un utilisateur distinct à chaque application). Le système de gestion des utilisateurs MySQL a été conçu spécifiquement pour permettre un accès contrôlé à la base de données exécutée sur le serveur, et NON pour servir de base à l'authentification des utilisateurs dans une application Web. De plus, tout ajout de base de données (et création d'utilisateur) nécessitera que vous disposiez d'un utilisateur exécutant l'application qui dispose de ces autorisations sur la base de données. Bien qu'il ne s'agisse pas d'une vulnérabilité directe en soi, si vous en trouvez une dans votre système PHP, cela pourrait rendre votre vie bien pire.

Vous ne voulez jamais que votre application puisse polluer l'espace de noms de votre base de données MySQL avec des bases de données supplémentaires ou (des tables d'ailleurs). Pendant le fonctionnement de votre application, elle ne devrait pouvoir créer, récupérer, mettre à jour et supprimer des enregistrements qu'en utilisant le Principe du moindre privilège , ce qui signifie que vous donnerez à votre utilisateur de base de données un accès pour faire uniquement les choses dont il a besoin et rien de plus.

En ce qui concerne le hachage du mot de passe, utilisez bcrypt via la fonction crypt() de PHP . Stockez cela dans la base de données dans une table d'utilisateurs.