Cacher de la Base de données les Informations de Connexion dans le Code PHP
je suis un total débutant dans la programmation web. Im essayant de créer un site web simple qui est de la lecture des données à partir d'une Base de données SQL. Au début, j'ai écrit ma base de données de mot de passe et login directement dans le code php:
<?php
$username = "login";
$password = "pw";
mysql_connect("server", $username, $password);
...
?>
Ce n'est évidemment pas une très bonne idée! Alors, quel est un (beaucoup) plus "secure" façon de le faire? J'ai lu à propos de mettre du code php dans un autre fichier, ce qui veut dire pas dans le principal document php du site web, puis de restreindre l'accès à ce fichier. Peut-être par un .fichier htaccess. Est-ce la voie à suivre?
Pourquoi ne devrait-ce pas être une bonne idée? Si vous n'avez pas d'écho les informations d'identification que personne ne peut les voir si il n'a pas d'accéder à votre serveur web.
Bonne question, mais a été demandé déjà! Il n'y a pas de bien moyen plus sûr. Ici est un doublon: Comment sécuriser la base de données de mots de passe en PHP?
Quel est le problème avec cette approche, à votre avis?
Ce n'est pas exaclty dangereux. Un attaquant devrait avoir accès à votre serveur pour obtenir ce mot de passe. Et je pense que, vous aurez probablement aurait plus de problèmes si c'est le cas.
Bonne question, mais a été demandé déjà! Il n'y a pas de bien moyen plus sûr. Ici est un doublon: Comment sécuriser la base de données de mots de passe en PHP?
Quel est le problème avec cette approche, à votre avis?
Ce n'est pas exaclty dangereux. Un attaquant devrait avoir accès à votre serveur pour obtenir ce mot de passe. Et je pense que, vous aurez probablement aurait plus de problèmes si c'est le cas.
OriginalL'auteur gaussd | 2011-05-11
Vous devez vous connecter pour publier un commentaire.
La
config.php
fichier et le.htaccess
est un classique/bonne façon d'aller. C'est la façon dont il est habituellement fait avec un CMS ou cadres.Comme indiqué par
JohnP
, vous pouvez également stocker lesconfig.php
à l'extérieur de l'annuaire public, ce qui signifie qu'il ne peut pas être consulté via HTTP. C'est seulement un peu mieux pour la sécurité (si vous ne faites pas une erreur avec votre .htaccess, il n'y a pas plus de risques).Structure du fichier d'exemple :
config/
-> fichiers de configurationlib/
-> les bibliothèques et utils fichiers PHPpublic/
-> tout ce que vous public pages/fichiers/images...De cette façon, http://www.your-site.com/ points de
public/
, donc il n'y a aucun moyen d'accéder à la config. Mais cette solution implique que vous pouvez changer la racine du répertoire web (ou que c'est déjà comme ça).Enfin, vous devez n'oubliez pas de mettre ce fichier lisible et accessible en écriture par l'utilisateur Apache seulement, pas tout le monde (unix droits d'accès au fichier), de sorte que si quelqu'un d'accéder à votre serveur par un autre utilisateur, il ne peut pas lire le fichier.
OriginalL'auteur Matthieu Napoli
Normalement, vous mettez cela dans un fichier de configuration et que l'accès à la configuration des valeurs via PHP.
Généralement un projet est organisé de telle sorte que le code de votre application et de votre code de configuration est en dehors de la racine de votre site et que votre ressources publiques (index.php, des images, des scripts ou d'autres ressources) sont disponibles via l'accès direct.
le plus certainement. Je n'étais pas ce qui implique qu'il était sûr que ce qu'il faisait maintenant. Cela a été plus d'une ligne directrice quant à la façon de structurer les choses
Vous êtes tous ce qui suggère pour stocker les informations d'identification de l'extérieur wwwroot. Ok, je comprends le fond de garantie. Mais comment doit-il être stocké dans le contrôle de version, puis (exemple de configuration)? Généralement wwwroot est la racine de repo git, donc si il n'y a rien à l'extérieur - il sera à l'extérieur de la VC. Imaginer de nouvelles développeur essayer de mettre en place une instance locale pour le développement - comment faut-il savoir de la magie, comme "ce fichier, copier l'extérieur et de remplir"?
Le moyen le plus sûr de traiter est d'avoir un touches mykeys.php.exemple de fichier qui répertorie toutes les touches que l'application utilise avec toutes les valeurs vides. Les valeurs peuvent soit alors être rempli manuellement par l'utilisateur sur la machine de déploiement. L'autre option est d'utiliser un script et de renseigner les valeurs des variables d'environnement. Vous pouvez ensuite continuer le script de contrôle de version.
OriginalL'auteur JohnP