2017-05-30 1 views
2

J'ai examiné ce problème, mais je n'ai pas trouvé de solution. Ce que j'ai trouvé est soit d'utiliser un fichier ini (que la plupart des réponses suivent pour dire que n'importe qui peut facilement saisir et lire ces fichiers), et de les stocker dans une autre base de données (évidemment, ne serait pas plus sûr les informations d'identification seraient exposées - laissant l'accès à la base de données d'origine). À peu près tout ce que j'ai trouvé était soit sans réponse ou répondu avec les deux options ci-dessus, soi-disant dangereux,. Comment puis-je conserver les informations d'identification de ma base de données en toute sécurité en dehors de l'œil public? Je les ai actuellement placés directement dans le PHP en utilisant des variables. J'utilise GoDaddy comme hôte et PHPMyAdmin pour l'utilisation de la base de données.Informations d'identification de l'accès à la base de données du magasin php en dehors du public

+3

le fichier en dehors de la racine Web est l'option utilisée 99,9% du temps – rtfm

+1

Possible duplicate of [Stockage sécurisé des informations d'identification de connexion à la base de données] (https://stackoverflow.com/questions/7220590/secure-storage-of-database-connection -credentials) –

+0

votre application a besoin de creds pour fonctionner, donc vous les stockez dans un endroit où l'application peut accéder (système de fichiers, db séparé) ou leur fournir la demande. ce dernier a ses propres problèmes, donc le système de fichiers en dehors de webroot est la pratique habituelle. – Steve

Répondre

0

Meilleure réponse jusqu'à présent, ayant un fichier 'ini' en dehors de l'accès public (même dossier que httpdocs pour moi) qui contient des informations de connexion. Puis, en PHP, accéder au fichier et l'analyser en utilisant:

"parse_ini_file (emplacementfichier)"

Ici, il est, dans l'exemple de mon utilisation:

access.ini (dans le même dossier que httpdocs)

[database] 
dbhost = xx.xx.xxx.xxx:xxxx 
username = xxxxxxxxxxx 
password = xxxxxxxxxxxxxxxx 
dbname = xxxxxxxxxxxxxx 

page.php (dans le dossier httpdocs)

$DatabaseAccess = parse_ini_file('../access.ini'); 
dbhost = $DatabaseAccess['dbhost']; 
username = $DatabaseAccess['username']; 
password = $DatabaseAccess['password']; 
dbname = $DatabaseAccess['dbname']; 

Il continue jusqu'à présent pour travailler, et se sent assez en sécurité. En outre, il est beaucoup plus facile que de se souvenir de supprimer/remplacer les informations d'identification de la base de données lors de l'obtention d'aide sur n'importe quel bit de code.