Bloquer les fonctions utilisateurs de Joomla
Lien court vers cette page : https://vt.cx/BfuJ QR code vers cette page : https://vt.cx/BfuJ.qr
Versions Joomla 1.6, 1.7, 2.5.x, 3.x
Sommaire
Présentation
Avec Joomla il faut distinguer l'inscription au site via :
http://site.tld>/index.php?option=com_users&view=registration
des autres fonctions Utilisateurs qui se font via :
http://<site.tld>/index.php?option=com_users&view=login http://<site.tld>/index.php?option=com_users&view=registration http://<site.tld>/index.php?option=com_users&layout=complete&view=registration http://<site.tld>/index.php?option=com_users&task=registration.register http://<site.tld>/index.php?option=com_users&task=registration.activate http://<site.tld>/index.php?option=com_users&view=reset http://<site.tld>/index.php?option=com_users&view=remind http://<site.tld>/index.php?option=com_users&view=profile http://<site.tld>/index.php?option=com_users&task=user.login http://<site.tld>/index.php?option=com_users&task=user.logout http://<site.tld>/index.php?option=com_users&task=reset.request http://<site.tld>/index.php?option=com_users&task=remind.remind http://<site.tld>/index.php?option=com_users&task=profile.edit&user_id=<USER -> NUMBER>
Le blocage de l'inscription et celui du login suffisent à rendre toutes les autres fonctions inopérantes. Il n'est donc pas utiles de les bloquer toutes.
Procédure blocage inscription Joomla
L'inscription sur un site Joomla soit par un menu soit par un lien direct comme
http://site.tld>/index.php?option=com_users&view=registration
reste accessible à tout moment s'il n'est pas expressément désactivé comme expliqué ici.
- Se connecter au back office (backend) ou panneau d'administration
- Dans le menu Utilisateurs choisir Gestion des utilisateurs
- Cliquer sur Paramètres qui définit les paramètres par défaut pour les utilisateurs
- Mettre Autoriser l'inscription des utilisateurs à non
- Cliquer sur Enregistrer et fermer
- A ce stade il n'est plus possible de s'inscrire sur le site. Toute tentative d'accès à l'enregistrement d'un nouvel utilisateur se soldera par une redirection vers le login qui lui reste opérationnel s'il n'est pas, à son tout, bloqué comme expliqué ci-après.
Le login sur un site Joomla, soit par un menu soit par un des liens directs reste accessible à tout moment s'il n'est pas expressément désactivé comme expliqué ici.
- Recourir à une redirection par .htaccess est très efficace pour supprimer tout accès au login de Joomla
- On commence par noter les liens qui correspondent à l'accès direct à la fonction login en saisissant dans la barre d'adresse le lien direct :
http://<site.tld>/index.php?option=com_users&view=login
Si le site utilise un plugin de SEF le lien sera probablement transformé en :
http://<site.tld>/deconnexion/login
sinon il restera identique à celui entré.
- On édite .htaccess situé à la racine et on y introduit tout en haut, la commande suivante :
Redirect permanent <lien de l'accès direct> <adresse de redirection> exemple Avec SEF : Redirect permanent /deconnexion/login / où / indique la racine du site Sans SEF : Redirect permanent /index.php?option=com_users&view=login / où / indique la racine du site
- Ceci fait, toute tentative d'accès directe au login du site renverra automatiquement au lien de redirection (racine du site dans l'exemple)
- Il n'est pas utile de bloquer les autres fonctions Utilisateurs car sans login ou registration elles sont sans intérêt.
- Il est possible de renvoyer sur un autre site en remplaçant / par un lien externe comme http://ecx.images-amazon.com/images/I/51R5C6G114L._SY300_.jpg qui affiche
Accès directs fonctions Utilisateurs
- Liens réécrits par JoomSEF → liens originaux
- deconnexion/login -> /index.php?option=com_users&view=login
- deconnexion/registration -> /index.php?option=com_users&view=registration
- deconnexion/registration/complete -> /index.php?option=com_users&layout=complete&view=registration
- deconnexion/registration/register -> /index.php?option=com_users&task=registration.register
- deconnexion/registration/activate -> /index.php?option=com_users&task=registration.activate
- deconnexion/forgot-password -> /index.php?option=com_users&view=reset
- deconnexion/forgot-username -> /index.php?option=com_users&view=remind
- deconnexion/profile -> /index.php?option=com_users&view=profile
- deconnexion/user/login -> /index.php?option=com_users&task=user.login
- deconnexion/user/com_sef_users_logout -> /index.php?option=com_users&task=user.logout
- deconnexion/forgot-password/request -> /index.php?option=com_users&task=reset.request
- deconnexion/forgot-username/submit -> /index.php?option=com_users&task=remind.remind
- deconnexion/<USER>/edit -> /index.php?option=com_users&task=profile.edit&user_id=<USER NUMBER>
Répertoire Com_User
Comme proposé par Alain Giraud dans les commentaires (plus bas) on peut aussi mettre le dossier /component/com_user à chmod 0 pour empêcher toutes les opérations utilisateurs comme login, inscription, etc. C'est simple, net et très efficace.