Séparer le code du public : l’architecture Bedrock pour un WordPress renforcé

Découvrez comment Bedrock de Roots renforce la sécurité de WordPress grâce à une architecture moderne, une meilleure gestion des dépendances et une isolation efficace des fichiers sensibles.

Introduction

WordPress est le CMS le plus utilisé au monde — mais aussi l’un des plus attaqués. Sa popularité en fait une cible privilégiée pour les pirates informatiques : injections SQL, accès non autorisés, scripts malveillants…
Heureusement, une solution moderne existe pour renforcer sa structure et sa sécurité : Bedrock, un boilerplate développé par Roots.io.

Dans cet article, nous allons voir comment Bedrock sécurise votre installation WordPress et pourquoi il représente une base idéale pour les projets professionnels.

 Qu’est-ce que Bedrock ?

Bedrock est une architecture modernisée de WordPress. Conçu par Roots.io, il transforme l’organisation classique d’un site WordPress pour la rendre plus propre, plus modulaire et surtout plus sécurisée.

Les principales caractéristiques :

  • Une structure de fichiers repensée avec un dossier web/ comme racine publique.

  • Une gestion des dépendances via Composer (plugins, thèmes et même le core WordPress).

  • Des fichiers de configuration par environnement (développement, staging, production).

  • Une séparation claire entre le code applicatif et les fichiers accessibles au public.

En résumé, Bedrock apporte à WordPress ce que Laravel a apporté au développement PHP moderne.

Pourquoi renforcer la sécurité de WordPress ?

WordPress, par défaut, n’est pas dangereux — mais son installation classique expose beaucoup de fichiers au public :

  • Le dossier wp-admin est accessible depuis le web.

  • Les fichiers de configuration (wp-config.php) contiennent des informations sensibles.

  • Les thèmes et plugins sont parfois modifiables directement depuis l’administration.

Cette architecture ouverte facilite la vie des développeurs… mais aussi celle des attaquants.

C’est ici que Bedrock entre en jeu.

Comment Bedrock améliore la sécurité de WordPress

 Séparation du dossier public et du cœur WordPress

Avec Bedrock, le dossier racine du site devient web/.
Le cœur WordPress est déplacé dans web/wp et les fichiers applicatifs dans web/app.
Résultat : les fichiers sensibles (configuration, vendors, git, etc.) ne sont plus accessibles via le navigateur.

Cette isolation limite fortement les attaques automatisées (scans de /wp-login.php, /readme.html, etc.).

 Fichier .env pour les données sensibles

Les identifiants de base de données, les clés d’authentification ou les URLs du site sont stockés dans un fichier .env (non accessible publiquement et non versionné).

Cela empêche l’exposition accidentelle de données critiques dans Git ou sur le serveur.

Exemple :

 
				
					

DB_NAME=wordpress_db
DB_USER=secure_user
DB_PASSWORD=StrongPassword!
WP_ENV=production
DISALLOW_FILE_EDIT=true
				
			
 

Configuration par environnement

Grâce à son système de configuration (config/application.php, config/environments/), Bedrock permet d’appliquer des réglages différents selon l’environnement :

  • En développement, activer le debug.

  • En production, désactiver la modification de fichiers (DISALLOW_FILE_MODS, DISALLOW_FILE_EDIT).

Cela réduit les risques d’erreurs humaines et empêche les pirates d’exploiter l’éditeur de fichiers du back-office.

 Gestion des dépendances avec Composer

Avec Composer, chaque plugin, thème ou version du core WordPress est déclaré et versionné.
Vous savez exactement ce qui est installé, et sur quelle version.
Résultats :

  • Plus de « plugins fantômes » non suivis.

  • Des mises à jour contrôlées et traçables.

  • La possibilité de rollback rapide en cas de problème.

C’est une approche bien plus professionnelle que le téléchargement manuel.

Meilleures pratiques et structure propre

En imposant une architecture claire et modulaire, Bedrock encourage les bonnes pratiques :

  • Aucune donnée sensible exposée publiquement.

  • Un dépôt Git propre (on ne versionne pas le core ni les plugins).

  • Une maintenance facilitée.

Un site bien organisé, c’est un site plus facile à auditer, maintenir et sécuriser.

				
					├── composer.json
├── config
│   ├── application.php     # Primary wp-config
│   └── environments
│       ├── development.php
│       ├── staging.php
│       └── production.php
├── vendor                  # Composer dependencies
└── web                     # Public document root
    ├── app                 # WordPress content dir
    │   ├── mu-plugins
    │   ├── plugins
    │   ├── themes
    │   └── uploads
    ├── wp-config.php
    ├── index.php
    └── wp                  # WordPress core
				
			
 

Check-list sécurité Bedrock

Pour tirer le meilleur de Bedrock côté sécurité :

Configurer le dossier racine (DocumentRoot) vers project/web
Protéger les fichiers .env, config/, et vendor/ contre l’accès HTTP
Versionner uniquement le code personnalisé et le composer.lock
Utiliser des mots de passe forts et des clés d’authentification dans .env
Désactiver l’édition des fichiers en production
Bloquer les accès non nécessaires (ex : XML-RPC, REST API si inutilisée)
Mettre à jour régulièrement les dépendances via Composer

Séparer le code du public : l’architecture Bedrock pour un WordPress renforcé