0
votes

Fournissant des informations d'identification de DB via un environnement et non codé dur

Je crée une application Web et je dois vous connecter à une base de données MySQL. J'utilise actuellement PHP 7.3. Je me connecte à la base de données SQL à l'aide de PDO Standard Way ( Nouveau PDO (db_dsn, db_user, db_pass) ) mais on m'a dit la déclaration suivante:

Les informations d'identification de la base de données devraient provenir de l'environnement et ne sont pas codées durement dans le code source.

Cependant, je ne sais pas comment faire cela.

Actuellement, l'application est hébergée sur un serveur Linux mais est migratie vers un serveur Azure. Mais avant que nous puissions la migrer, ils voudraient que je modifie la configuration des informations d'identification SQL, comme indiqué ci-dessus.

Je suis courant à l'aide de la classe fournie dans la documentation PHP Commentaires trouvés Ici .


1 commentaires

Vous pouvez utiliser Cette bibliothèque et mémoriser les informations d'identification dans un fichier .env.


3 Réponses :


0
votes

stocker des secrets dans des applications Web est complexe, mais la plupart des langues / cadres ont des moyens de le faire.

en PHP, une façon dont vous pouvez le faire stocker est de stocker les informations dans les variables d'environnement, que vous pouvez alors Récupérez au moment de l'exécution. par exemple, vous pouvez utiliser < / p> xxx

Vous pouvez définir ces variables d'environnement Utilisation de l'onglet Paramètres de l'application dans Azure Portal .

Chaque environnement ( Les machines de développement, les serveurs de test, les serveurs de production) peuvent alors avoir ces variables d'environnement définies différemment.

Il y a même un Bibliothèque pour vous aider avec cela.


2 commentaires

Cet article est trop localisé à un fournisseur de services Internet et n'explique pas comment la mettre en œuvre de votre choix, qui, je crois, est invité ici, en d'autres termes, cela n'explique pas, comment db_dsn le fait en $ _Server


C'est un commentaire raisonnable - j'ai mis à jour la réponse



-1
votes

Il y a plusieurs façons de le faire, aucun d'entre eux n'est facile. Toutefois, une approche rapide et facile consiste à enregistrer les informations d'identification dans un fichier externe sur le serveur, permettez à PHP d'obtenir les informations d'identification et de le sécuriser avec HTACCESS.

1. Préparez vos fichiers: -
  1. Créez un dossier sur le serveur appelé "_Secure".
  2. Créer un fichier sous "_secure" appelé "credi.ini" contenant nom d'utilisateur | mot de passe . .
  3. créer un fichier sous "_secure" appelé ".htaccess".

    2. Sécurisez vos informations d'identification: -

    dans votre fichier ".htaccess", ajoutez le texte suivant: - xxx

    3. Intégrez avec PHP:

    à l'intérieur de votre PHP, utilisez le code suivant: - xxx

    Vous devez personnaliser les noms et le code PHP en fonction de votre utilisation. , ce ne sont que des exemples de codes et de noms.


3 commentaires

La protection ne fonctionnera jamais et n'exposera jamais les informations d'identification à quiconque que Azure ne reconnaît pas .htaccess


Eh bien, il peut toujours ignorer cette étape et avoir l'approche, mais sans moyen sécurisé, la meilleure approche est la variables d'environnement qu'il utilise des problèmes de mise en œuvre.


Je crois que la sécurité est la principale préoccupation ici



0
votes

Assumer que votre installation actuelle Linux utilise Apache sous forme de serveur Web, vous pouvez configurer des variables d'environnement dans ses fichiers de configuration (httpd.conf ou .htaccess) comme celui-ci

new PDO($dsn, $_ENV['DB_USER'], $_ENV['DB_PASS']);


0 commentaires