Modifier le nombre d'essais maximum de connexions au panel admin
Mordred
Member
Salut !
Ceci est mon premier message posté sur ce forum, je suis un utilisateur de PluXml depuis quelques années désormais, et je ne peux que vous féliciter pour votre travail, ça fait plaisir de voir des CMS de blog léger, rapide et simple.
Désormais j'essaierais donc de donner mes modestes contributions ! (Je n'ai pas pensé à regarder si un topic similaire avait déjà été posté, si c'est le cas je m'en excuse d'avance !)
________________________________________
Comment bloquer le nombre d'essais de connexion au panel admin à un nombre précis d'essais ? Cela peut avoir plusieurs intérêts, éviter que quelqu'un trouve par hasard votre mot de passe en effectuant beaucoup d'essais, et cela empêchera également les scripts de brute force basé sur des dictionnaires d'attaquer votre formulaire de connexion. Un peu plus de sécurité donc, c'est toujours utile !
Nous allons commencer par éditer le fichier auth.php, situé dans : /core/admin/, téléchargez ce fichier via un client FTP, enregistrez le puis ouvrez-le avec un éditeur de texte.
La partie de code nous intéressant est située aux lignes 60 - 70.
Nous allons déclarer une variable de session, et l'incrémenter à chaque fois qu'un nouvel essai de connexion sera tenté. Si le nombre de connexion est supérieur à n, on arrêtera le script.
Ajoutez après :
Et voilà, désormais le script d'administration s'arrêtera purement et simplement au bout de n essais, paramétrez la condition maxtry >= 3 avec votre chiffre désiré.
Si vous êtes malin, vous me direz qu'en désactivant les cookies, il est possible de contourner cela, sauf que si les cookies sont désactivés, j'ai remarqué que PluXml refuse d'executer la page d'administration, il n'y a donc aucun soucis de ce côté là.
Have fun ! (Le lien complet de l'article) Petite ombre : Il suffit de vider ses sessions pour pouvoir recommencer, mais désormais avec le nombre d'ip dynamique qu'il y a, même en bannissant une adresse IP, il suffit de redémarrer son routeur, ou voir de passer par un proxy, pour contourner cela Il n'y a donc malheureusement aucune méthode de bannissement fiable à 100%.
Mordred, Pluxmlement votre.
Ceci est mon premier message posté sur ce forum, je suis un utilisateur de PluXml depuis quelques années désormais, et je ne peux que vous féliciter pour votre travail, ça fait plaisir de voir des CMS de blog léger, rapide et simple.
Désormais j'essaierais donc de donner mes modestes contributions ! (Je n'ai pas pensé à regarder si un topic similaire avait déjà été posté, si c'est le cas je m'en excuse d'avance !)
________________________________________
Comment bloquer le nombre d'essais de connexion au panel admin à un nombre précis d'essais ? Cela peut avoir plusieurs intérêts, éviter que quelqu'un trouve par hasard votre mot de passe en effectuant beaucoup d'essais, et cela empêchera également les scripts de brute force basé sur des dictionnaires d'attaquer votre formulaire de connexion. Un peu plus de sécurité donc, c'est toujours utile !
Nous allons commencer par éditer le fichier auth.php, situé dans : /core/admin/, téléchargez ce fichier via un client FTP, enregistrez le puis ouvrez-le avec un éditeur de texte.
La partie de code nous intéressant est située aux lignes 60 - 70.
Nous allons déclarer une variable de session, et l'incrémenter à chaque fois qu'un nouvel essai de connexion sera tenté. Si le nombre de connexion est supérieur à n, on arrêtera le script.
Ajoutez après :
if(!empty($_POST['login']) AND !empty($_POST['password'])) {
Le code suivant :
/* Modification anti cracking formulaire admin */
if(!isset($_SESSION['maxtry'])) $_SESSION['maxtry'] = 1; // Si la sessvar maxtry existe pas on la met à 1 dès qu'une tentative est faite
else $_SESSION['maxtry']++; // Si elle existe, on l'incrémente
/***********************************************/
Ensuite, ajoutez ceci après la ligne 59, après la condition suivante :
if(!empty($_GET['d']) AND $_GET['d']==1) {
// Reste du code Pluxml volontairement supprimé
}
/* Modification anti cracking formulaire admin */
if($_SESSION['maxtry'] >= 3) exit();
/***********************************************/
Il vous suffit ensuite de ré-uploader le fichier auth.php via votre client FTP.Et voilà, désormais le script d'administration s'arrêtera purement et simplement au bout de n essais, paramétrez la condition maxtry >= 3 avec votre chiffre désiré.
Si vous êtes malin, vous me direz qu'en désactivant les cookies, il est possible de contourner cela, sauf que si les cookies sont désactivés, j'ai remarqué que PluXml refuse d'executer la page d'administration, il n'y a donc aucun soucis de ce côté là.
Have fun ! (Le lien complet de l'article) Petite ombre : Il suffit de vider ses sessions pour pouvoir recommencer, mais désormais avec le nombre d'ip dynamique qu'il y a, même en bannissant une adresse IP, il suffit de redémarrer son routeur, ou voir de passer par un proxy, pour contourner cela Il n'y a donc malheureusement aucune méthode de bannissement fiable à 100%.
Mordred, Pluxmlement votre.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tout d'abord bienvenue sur le forum
Merci pour cette modification et les explications très claires sur le fonctionnement et sa mise en place
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Très intéressant.
Pour ma part, comme sur ma machine GNU/Linux j'utilise le HIPS fail2ban, j'ai ajouté une ligne dans le module core/admin/auth.php pour journaliser les tentatives dans les logs PHP. C'est vers la fin des lignes de codes "#Authentification", soit après la ligne "$error = 'error';" : En revanche, sur d'autres OS, je ne connaît pas les solutions équivalentes.