Est-ce toujours ok pour enregistrer le mot de passe en texte brut dans une variable php ou php constante?
Comme par question, est-il sûr pour stocker des mots de passe sur les pages php comme
$password = 'pa$$w0rd';
Si les utilisateurs ne peuvent pas le voir, c'est sûr, droite?
EDIT:
Certaines personnes ont suggéré d'utiliser hachage, cependant, il y aurait un problème avec le serveur de base de données mot de passe de connexion, ne serait-il pas?
Vous devez vous connecter pour publier un commentaire.
La réponse courte est à la fois Non, et Il Dépend.
Elle n'est presque jamais une bonne idée de stocker les mots de passe en texte clair, surtout dans un emplacement accessible sur le web, si pour pas autre raison qu'une simple mauvaise configuration du serveur ou un écho dans le mauvais endroit pourrait exposer au monde.
Si vous DEVEZ enregistrer un mot de passe (ce qui est possible), vous pouvez essayer de le stocker à l'extérieur de la racine de votre site, par exemple
/var/www/public_html/
Mettre votre codez ici/var/www/includes/
Mettre vos mots de passe iciEncore mieux que ce serait d'avoir le système que vous avez besoin du mot de passe pour (par exemple une base de données wrapper ) retourne un objet déjà instancié. donc, plutôt que de demander pour
$databasepassword
vous demander un objet PDO, et de stocker votre base de données de cours à l'extérieur de la racine de votre site.L'Ça Dépend vient de ce que les vecteurs d'attaque serait la cause de quelqu'un d'avoir accès à ce texte de mot de passe, et serait-il exiger d'eux d'être déjà à l'intérieur de votre système de fichiers, si oui, vous êtes probablement fichus.
Aussi, si son mot de passe à votre supa-secrit contenu abonné, meh, tout ce que vous avez perdu certains de frais d'abonnement, si c'est votre base de données, vous pouvez avoir un problème, si c'est en ligne vos coordonnées bancaires, um bon pour vous.
Combien précieuse est la chose que le mot de passe est la protection?
Selon la façon dont vous définissez sûr, toute méthode a ses aspects positifs et négatifs.
Si vous voulez vraiment pour stocker un mot de passe dans votre fichier source, il pourrait être une bonne idée de faire quelque chose du genre:
Fichier: config.php
Fichier: index.php
Texte brut n'est jamais une bonne idée, toujours stocker un hachage du mot de passe que vous souhaitez stocker.
En outre, essayez de les séparer définit comme ce à partir de votre principale source.
Habituellement, ils ne peuvent pas le voir. Mais si quelque chose se passe mal sur le serveur il y a une grande possibilité que le serveur sera de retour de votre code php en texte brut w/o de l'exécution et, par conséquent, l'utilisateur verra tous les source de ce fichier et de votre mot de passe.
Je voudrais stocker le mot de passe quelque part où il n'est pas sur la racine du document (Ne peut pas être ouvert dans le navigateur) et ensuite ouvrir ce fichier avec php et de lire le contenu (mot de passe). Ou si vous avez plusieurs mots de passe/les utilisateurs, j'avais les stocker dans la base de données pour un accès rapide.
Si vous souhaitez utiliser le fichier de la méthode de répertoire de mise en page devrait ressembler à quelque chose comme ceci (depneds sur le serveur)
Si vous voulez encore plus de sécurité, au lieu de stocker le mot de passe que le texte de ce fichier. Mal c'est de hachage et puis quand vous voulez comparer avec la saisie de l'utilisateur de générer de hachage à partir de l'entrée de l'utilisateur et de le comparer à la de hachage du mot de passe que vous avez chargé depuis un fichier texte
Aussi longtemps que votre installation de PHP fonctionne comme il se doit, ce n'est pas moins sécurisé que n'importe quelle autre méthode. Je préfère constante nommée (à définir) sur la variable. En outre, vous pouvez envisager de stocker un hachage du mot de passe, au lieu de mot de passe en clair. Cela empêche de voler vos mots de passe, même si le site est compromise.
Comme pour être une mauvaise pratique, ça dépend. Si vous avez besoin de stocker juste un mot de passe, cette approche est ok. Les stocker à l'extérieur de la racine du document peuvent donner un faux sentiment de sécurité supplémentaire; la racine du document n'est plus absolu que n'importe quel autre paramètre du serveur.
À moins que le site lui-même est compromise et sont donc toutes les choses que ces mots de passe accorder l'accès à votre base de données, peut-être?).
Cela dépend de comment vous définissez "sûr".
Vous qu'un utilisateur de ne pas le voir.
Cependant c'est une mauvaise pratique; si votre site est compromise, qu'est-ce que ces mots de passe donnent accès? Je voudrais dire à un minimum de stockage d'un hachage du mot de passe, pas le texte en clair.
Parfois, il suffit de le f.e. pour une application de messagerie où vous ne pouvez vous connecter avec le mot de passe en clair et pas avec une valeur de hachage. Et si votre application n'ont pas de problèmes de sécurité, il ne devrait pas vous affecter.
Je pense que la plupart du temps, de texte en clair le mot de passe de la base de données mot de passe de MySQL, par exemple, de ne pas accepter de hachage pour l'authentification.
Comme mentionné précédemment, la meilleure solution est de garder la config PHP fichier avec un mot de passe à l'extérieur de la racine de votre site.
Si vous êtes inquiet que quelqu'un peut voir votre mot de passe lorsque vous affichez le fichier, vous pouvez tout simplement le rendre illisible pour un humain en utilisant base64 d'une fonction.
Voir ce post pour plus de détails et même petit utilitaire pour Windows, Linux et Mac qui la rend plus facile.