actuellement je stocke les données de connexion dans le fichier php. mais comme récemment arrivé avec facebook, que les fichiers php apparaissent à l'écran sans traitement, pour éviter un tel scénario est leur autre alternative?comment stocker la chaîne de connexion mysql
Répondre
Notre solution est de garder un minuscule my.cnf avec juste la section [client] définie. La plupart des connecteurs MySQL ont une directive "read_defaults_file" qui vous permet d'utiliser directement le fichier.
Vous pouvez ensuite conserver ce fichier sous sécurité, et le script échouera sur cette ligne si l'utilisateur n'est pas autorisé pour cette information. Si vous utilisez au moins php5, mysqli::options fait exactement ce que je décris lorsque MYSQLI_READ_DEFAULT_FILE est spécifié. Sur les anciennes versions de php, il semble que le parse_ini_file fait l'affaire de l'analyse. Cette approche a l'avantage d'être compatible avec Perl, Python et C, de sorte que si les informations de votre base de données changent, il vous suffit de mettre à jour un fichier et toutes vos applications resteront synchronisées.
Stockez vos informations de connexion privée dans un fichier situé en dehors du dossier racine de votre document et utilisez require_once pour le charger. De cette façon, si quelque chose se produit, les utilisateurs ne peuvent pas accéder à http://yoursite/db.config.php
et télécharger votre fichier. Mettez votre fichier qui contient la chaîne de connexion Ex: connect.php en dehors du dossier webroot
J'utilise l'hôte partagé ... alors voulez-vous dire que je dois mettre le fichier en dehors du dossier public_html? – subash
oui. Ça marcherait. –
Si vous êtes concerné, ajoutez une exception htaccess qui rend le fichier "chaîne de connexion" inaccessible depuis le web.
RewriteRule /path/to/dbsettings.php index.php [NC]
Je crois que est exact, bien que peu rouillé dans le domaine htaccess. Tous les gourous se sentent libres de me corriger.
Les fichiers .ini ne sont pas accessibles directement? – subash
Les fichiers .ini sont accessibles directement. – bukzor