Bloquer les tentatives d'inscription et de connexion indésirables sous Joomla!

Nos systèmes CMS préférés sont malheureusement victimes de leur succès lorsqu'il s'agit de tentatives d'intrusion malveillantes. Une des "portes d'entrées" utilisées est l'inscription d'utilisateur pour tenter ensuite d'élever les droits utilisateur sur le site (Joomla! 3.6.4 vient de régler une telle faille). En effet, les schémas d'inscription sont les mêmes pour tous les sites Joomla! et toute les versions du CMS, on peut ainsi voir dans les logs de certains sites ciblés :

/index.php/component/user/?task=register
/index.php/component/users/?view=registration
/index.php?option=com_user&view=register
/index.php/registration?option=com_users&view=register
/index.php/component/users/?view=login
/index.php/component/users/?view=reset

Et j'en passe sûrement...

Qui correspondent aux urls où l'ont peut retrouver les formulaires d'inscription et de connexion en frontend du site et qui sont accessibles même si aucun lien de menu n'y mène.

Si le site ne requiert pas de donner la possibilité aux visiteurs de pouvoir créer un compte ou de se connecter, on peut dans un premier temps désactiver les inscriptions dans les paramètres utilisateurs : Autoriser l'inscription des utilisateurs > Non. Le formulaire d'inscription ne sera alors plus plus affiché sur une url de type /index.php/component/user/?task=register mais vous pourrez toujours y retrouver le lien de connexion, et les liens de réinitialisation de mot de passe.

Pour aller un peu plus loin, et couper l'accès à ces pages, on peut jeter un œil au composant com_users de Joomla! pour modifier les fichiers. La meilleure solution est alors de créer des overrides pour les fichiers en les copiant dans le dossier de template du site. Les fichiers originaux à copier et modifier se trouvent dans:

components/com_users/views/login/tmpl
components/com_users/views/profile/tmpl
components/com_users/views/registration/tmpl
components/com_users/views/remind/tmpl
components/com_users/views/reset/tmpl

Il faut tout d'abord les copier vers :

templates/TemplateDuSite/html/com_users/login
templates/TemplateDuSite/html/com_users/profile
templates/TemplateDuSite/html/com_users/registration
templates/TemplateDuSite/html/com_users/remind
templates/TemplateDuSite/html/com_users/reset

On peut ainsi garder ces modifications lors des différentes mises à jour du système.

Il existe ensuite plusieurs solutions pour modifier ces fichiers, supprimer les formulaires et liens, afficher un message dédié pourrait aussi faire sourire, on peut encore tout simplement créer une redirection automatique en php en ne gardant dans ces fichiers que :

<?php header('Location: http://www.nom-de-domaine.fr'); exit(); ?> 

On pourra alors voir dans les logs des codes http de redirection 302 pour les urls listées plus haut.

L'url d'administration sera toujours accessible à n'importe qui car commune à toutes les configurations Joomla! :

www.nom-de-domaine.fr/administrator

mais cela peut être évité avec l'extension jSecure ou sa version gratuite jSecure Lite. Cette extension permet de rajouter une variable unique choisie au bout de l'url

www.nom-de-domaine.fr/administrator?VariableChoisie

 

BLOG COMMENTS POWERED BY DISQUS