L'une des premières cibles des outils de scan automatique est l'URL d'administration d'un CMS. WordPress expose /wp-admin/, Joomla /administrator/, TYPO3 /typo3/. Ces chemins prévisibles permettent à des bots de tester des listes de mots de passe sans même avoir identifié le CMS utilisé. QuietCMS élimine ce vecteur d'attaque à la racine en générant une URL admin entièrement aléatoire au moment de l'installation.
Génération à l'installation
Lors de la procédure d'installation, deux valeurs aléatoires sont générées :
- ADMIN_SLUG : un slug alphanumérique de 12 caractères (ex.
k7m2pxrq9nwt) qui forme le chemin public de l'administration. - ADMIN_LOGIN_FILE : un nom de fichier aléatoire de 10 caractères pour la page de connexion (ex.
c4hj8zve2a.php).
Ces deux valeurs sont stockées comme constantes dans config.php :
define('ADMIN_SLUG', 'k7m2pxrq9nwt');
define('ADMIN_LOGIN_FILE', 'c4hj8zve2a.php');
Configuration .htaccess
Le fichier .htaccess racine inclut une règle qui route l'URL randomisée vers le dossier admin/, tout en bloquant l'accès direct au chemin /admin/ :
# Route l'URL admin aléatoire vers le dossier admin/
RewriteRule ^k7m2pxrq9nwt(/.*)?$ admin/index.php [L,QSA]
# Bloque l'accès direct au dossier /admin/
RewriteRule ^admin(/.*)?$ - [F,L]
En pratique, ADMIN_SLUG est injecté dynamiquement dans le .htaccess lors de l'installation. Si le slug est modifié ultérieurement dans config.php, le .htaccess doit être mis à jour en conséquence (une fonction utilitaire est fournie à cet effet dans l'interface d'administration).
Ce qui n'est jamais exposé
Le slug admin ne figure dans aucun endroit indexable ou public :
- Absent de
robots.txt - Absent du
sitemap.xml - Absent du code source HTML des pages publiques
- Absent des en-têtes HTTP de réponse
Bénéfice sécurité concret
Cette mesure élimine efficacement les attaques par force brute menées par des scanners automatiques (Shodan, Nuclei, scripts personnalisés) qui ciblent les chemins CMS connus. Un attaquant qui ne connaît pas le slug doit d'abord l'identifier — ce qui nécessite soit un accès au serveur, soit une fuite d'information.
Il s'agit bien de sécurité par l'obscurité : une couche défensive supplémentaire, pas un substitut à une authentification robuste. QuietCMS combine cette obscurité avec des mots de passe hachés en bcrypt, des tokens CSRF et un rate limiting par IP — chaque couche renforçant les autres.
En cas de compromission du slug
Si le slug venait à être divulgué (capture de trafic réseau non chiffré, fuite de config.php), la procédure de remédiation est simple :
- Modifier
ADMIN_SLUGdansconfig.php. - Mettre à jour la règle
RewriteRulecorrespondante dans.htaccess. - Vérifier les logs d'accès pour détecter d'éventuelles connexions suspectes.
La nature flat-file de QuietCMS facilite ce type de rotation : aucune table de base de données à modifier, aucune migration à exécuter.
Articles similaires
Blocage IP, sous-réseau /24 et filtrage par pays
QuietCMS permet de bloquer des IPs individuelles, des sous-réseaux /24 et des pays entiers depuis le back-office. Implém…
Chiffrement AES-256-GCM des données sensibles
QuietCMS utilise AES-256-GCM pour chiffrer les mots de passe SMTP au repos. Détails techniques de l'implémentation.
Sécuriser son site avec les en-têtes HTTP : HSTS, CSP et Trusted Types
HSTS, CSP, Trusted Types : trois en-têtes HTTP que Lighthouse réclame pour sécuriser un site, et comment QuietCMS les ac…