Sécurisez vos mots de passe avec le fichier .env en php

04/10/2026

Écrit par Johanny

PHP

ncode_level

3 vues

Développeuse devant le logo PHP sécurisant ses mots de passe avec les variables d'environnement sur son ordinateur
Sommaire

C'est une erreur classique que tout développeur a commise au moins une fois à ses débuts : écrire le mot de passe de sa base de données ou sa clé d'API secrète directement dans un fichier config.php. Si le code reste sur votre ordinateur personnel, le risque semble minime. Mais que se passe-t-il le jour où vous publiez votre projet sur GitHub ou sur un serveur public ? Vos identifiants sont exposés aux yeux de tous. Pour éviter cette faille de sécurité majeure, la solution standard dans l'industrie du développement web consiste à utiliser des variables d'environnement PHP avec un fichier .env. Au lieu d'écrire vos secrets dans le code source, vous les stockez dans un fichier externe spécifique, invisible pour le reste du monde, que votre application viendra lire dynamiquement.

 

Pour éviter cette faille de sécurité majeure, la solution standard dans l’industrie du développement web consiste à utiliser des variables d’environnement PHP. Au lieu d’écrire vos secrets dans le code source, vous les stockez dans un fichier externe spécifique, invisible pour le reste du monde, que votre application viendra lire dynamiquement.

Dans ce tutoriel, nous allons voir comment mettre en place un fichier .env dans votre projet PHP afin de sécuriser définitivement vos mots de passe et vos configurations sensibles.

Le danger des mots de passe en clair

Lorsque vous débutez en PHP, il est naturel de stocker les informations de connexion à la base de données directement dans le code, souvent de cette manière :

<?php
$host = 'localhost';
$user = 'root';
$password = 'MonSuperMotDePasse123!';
$dbname = 'ma_base';

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);

Le problème majeur de cette approche est que votre mot de passe fait désormais partie intégrante de votre code source. Si vous partagez ce code avec un collègue, si vous l’envoyez sur un dépôt Git (comme GitHub ou GitLab), ou si une faille permet de lire vos fichiers, votre base de données est immédiatement compromise.

Qu’est-ce qu’une variable d’environnement ?

Une variable d’environnement est une valeur dynamique chargée dans l’environnement d’exécution de votre application, plutôt que d’être écrite en dur dans le code. En d’autres termes, c’est une configuration qui vit sur le serveur (ou sur votre machine locale) et que votre script PHP vient lire au moment où il s’exécute.

L’approche la plus courante en PHP moderne consiste à utiliser un fichier nommé .env (point env). Ce fichier contient vos informations sensibles sous forme de paires clé/valeur, et il n’est jamais partagé avec le code source.

Mettre en place un fichier .env en PHP

Pour lire facilement un fichier .env, la communauté PHP utilise massivement une bibliothèque appelée phpdotenv. Voici comment la mettre en place pas à pas dans votre projet.

Étape 1 : Installer phpdotenv via Composer

Pour gérer cette dépendance, vous devez utiliser Composer, le gestionnaire de paquets standard de PHP. Ouvrez votre terminal, placez-vous à la racine de votre projet et tapez la commande suivante :

composer require vlucas/phpdotenv

Cette commande va télécharger la bibliothèque et l’ajouter à votre dossier vendor.

Étape 2 : Créer le fichier .env

À la racine de votre projet (généralement au même niveau que votre index.php ou votre composer.json), créez un nouveau fichier et nommez-le très exactement .env.

Ajoutez-y vos identifiants :

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=MonSuperMotDePasse123!
DB_NAME=ma_base
API_KEY=123456789abcdef

Note : Il n’y a pas d’espaces autour du signe égal (=) et les guillemets ne sont généralement pas nécessaires, sauf si votre valeur contient des espaces.

Étape 3 : Charger et utiliser les variables en PHP

Maintenant que votre fichier est prêt, vous devez indiquer à PHP de le lire. Dans votre fichier de configuration ou au tout début de votre application, ajoutez le code suivant :

<?php
// 1. Charger l'autoloader de Composer
require_once __DIR__ . '/vendor/autoload.php';

// 2. Initialiser dotenv et charger le fichier .env
$dotenv = DotenvDotenv::createImmutable(__DIR__);
$dotenv->load();

// 3. Utiliser les variables d'environnement PHP
$host = $_ENV['DB_HOST'];
$user = $_ENV['DB_USER'];
$password = $_ENV['DB_PASSWORD'];
$dbname = $_ENV['DB_NAME'];

// Connexion sécurisée à la base de données
try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
    echo "Connexion réussie !";
} catch (PDOException $e) {
    echo "Erreur de connexion : " . $e->getMessage();
}

Désormais, la superglobale $_ENV contient toutes les valeurs de votre fichier .env. Votre code source est propre, fonctionnel, et ne contient plus aucune donnée confidentielle.

L’étape indispensable : ignorer le fichier .env dans Git

C’est le point le plus crucial de ce tutoriel. Si vous utilisez Git pour versionner votre code, vous devez absolument empêcher l’envoi du fichier .env sur votre dépôt distant.

Pour cela, ouvrez (ou créez) le fichier .gitignore à la racine de votre projet et ajoutez simplement cette ligne :

.env

Ainsi, lorsque vous ferez un git commit, Git ignorera totalement votre fichier contenant les mots de passe. Votre code source pourra être rendu public en toute sécurité, tandis que vos secrets resteront bien au chaud sur votre machine.

Bonnes pratiques supplémentaires

Pour travailler efficacement et proprement avec les variables d’environnement PHP en équipe, voici quelques recommandations :

Resultats de la recherche