Protéger le répertoire admin

kameakamea Member
14 mai modifié dans Entraide

Bonjour,
Existe-t-il un moyen de renommer le dossier /core/admin (par exemple en /core/FghtyJU6) pour limiter l’accès par défaut à l’interface d’administration ?
J’ai fais quelques tests, mais cela ne semble pas fonctionner. Il doit y avoir des mécanismes spécifiques liés à ce dossier.

Merci d’avance pour vos éclaircissements !

Réponses

  • 14 mai modifié

    Bonjour,

    le chemin est en dur dans les fichiers, il faut les modifiés manuellement :

    Dans le dossier :

    • core/admin/auth.php lignes 50 et 59
    • core/admin/foot.php ligne 15
    • core/lang/XX/update.php lignes 48 et 49
    • core/lib/class.plx.feed.php ligne 382,386 et 398
    • update/update_5.1.php ligne 128,130,132
    • ... ?

    Puis on va retrouver ses liens en dur aussi dans la majorité des plugins ayant une page d'administration ou de configuration

    Avec Notepad++ , tu peut par exemple , sur une copie, faire "rechercher tout" la chaîne core/admin , puis (ou directement) faire "remplacer tout" par ton nouveau chemin . Finaliser en enregistrant tout. D'autre IDE ont sûrement ses fonctionnalité nommé différemment.

    L'idéal serait que l'on puisse dans l'avenir pouvoir déplacer ce dossier en le renommant et passer ce chemin comme d'autres constantes de PluXml.

    Il y a aussi un plugin à double authentification plutôt efficace (que j'ai testé et utilisé), voir :

    il y a aussi https://forum.pluxml.org/discussion/6308/plugin-kzu2f-double-authentification-par-cle-usb-fido-u2f et https://kazimentou.fr/repo/index.php?plugin=kzU2F&download .

    Enfin, si tu administre ton site rarement et depuis ton ordinateur, tu peut aussi via FTP renommer le dossier momentanément


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de PluXml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci

  • kameakamea Member

    Bonjour,

    Désolé pour le retard de réponse, je n'ai pas pu répondre avant aujourd’hui.

    Ce serait formidable si, dans l'interface d'administration, on pouvait nativement définir le nom du répertoire admin.

    Je vais tester les plugins en attendant.

    Milles merci pour tous ces renseignements :)

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,
    J'avais jeté un oeil sur ce problème quand tu as publié ton 1er post.
    Cela me semble faisable.
    Mais pas trop pour mettre cela dans l'interface admin. Ce serait plutôt un dossier à définir à l'installation ou à renommer à la main après installation.
    Je pense qu'il faudra créer une nouvelle constante PLX_ADMIN comme il existe PLX_CORE.
    J'essaie de voir cela courant juin.

  • kameakamea Member

    C'est génial, merci :)

  • kameakamea Member

    Bonjour @bazooka07,

    j'ai été pas mal absent ces temps ci. Avez-vous eu un peu de temps pour vous pencher sur la question ?

    Merci :)

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour @kamea,

    Pour répondre à ta demande, il y a un peu plus de modifications que je pensais. J'attends quelques volontaires pour tester ces modifications avant de l'intégrer dans la prochaine mise à jour de PluXml.
    Si tu maitrises Git :

    git clone https://github.com/kazimentou/PluXml.git -b admin-dossier
    

    ou bien PR#871 sur dépôt de PluXml

    `````Sinon télécharge l'archive pluxml-admin.zip sur
    https://kazimentou.fr/divers/PluXml/

    Note qu'avec cette archive, PluXml est installé dans le dossier PluXml-admin

    Tu peux renommer core/admin avant ou après l'installation.

    • Soit en renommant le dossier admin
    • Soit en créant un nouveau dossier à la racine du site, par exemple office et en déplaçant le dossier core/admin dans ce nouveau dossier et en le renommant entrance par exemple. L'accès au back-office se fera alors par https://mon-site.com/PluXml-admin/office/entrance.

    Le lien vers le côté admin dans le thème par défaut se mettra automatiquement à jour.
    Pour un thème personnel, je conseille de supprimer ce lien pour plus de discrétion.

  • kameakamea Member

    Bonjour @bazooka07 ,

    Alors je viens de tester l'archive pluxml-admin.zip, moi et github on ne se connais qu'un peu seulement :)

    Le front-end fonctionne, mais lors de l’accès à l’administration via /core/admin, celle-ci s’affiche sans feuille de style. Peut-être est-ce normal à ce stade de développement/test ?

    J’ai également tenté de renommer le dossier /core/admin/ en /newrep1234/admin/, et cela génère des erreurs :

    Warning: include(../../core/lib/config.php): Failed to open stream: No such file or directory in D:\laragon\www\pluxml\PluXml-5.8.19\newrep1234\admin\prepend.php on line 7
       Warning: include(): Failed opening '../../core/lib/config.php' for inclusion (include_path='.;D:/laragon/etc/php/pear') in D:\laragon\www\pluxml\PluXml-5.8.19\newrep1234\admin\prepend.php on line 7
    Fatal error: Uncaught Error: Call to undefined function path() in D:\laragon\www\pluxml\PluXml-5.8.19\newrep1234\admin\prepend.php:10 Stack trace: #0 D:\laragon\www\pluxml\PluXml-5.8.19\newrep1234\admin\index.php(10): include() #1 {main} thrown in D:\laragon\www\pluxml\PluXml-5.8.19\newrep1234\admin\prepend.php on line 10
    

    Si tu veux/peux faire un vocal via discord ou teams, ou autre fais moi signe en private.

    Merci pour le suivi, à plus tard.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour @Kamea,

    Pour le front-end, il ne doit pas y avoir de souci car il n'utilise aucun fichier du dossier core/admin.

    J'ai fait mes tests sous Linux, c'est le même environnement que sur Internet.
    ll faut que je regarde comment cela se passe sous Windows. Le séparateur de dossiers dans le chemin d'accès à un fichier est différent de celui employé sur Internet.

    Essaie de faire ton essai sur un serveur dans Internet et pas ton PC.

    Je vais faire des essais sous Windows mais cela ne m'enchante pas.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Re,

    Je viens de faire l'installation sur un serveur de démo sur Internet. C'est dispo ici :
    https://kazimentou.alwaysdata.net/PluXml-admin/

    Tu peux accéder au back-office avec le login kamea. Pour obtenir le mot de passe, clique sur mot de passe oublié. Tu le recevras sur l'adresse mail que tu as indiqué sur ce site.

    Il y a aussi le login gccyrillus. Avis à l'intéressé.

    Je vais poursuivre les essais de mon côté.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Re,

    Je viens de faire un test avec Laragon sous Windows.
    Et c'est bien un bug de Windows !!! Heureusement qu'on utilise Linux sur Internet

    Dans le fichier core/lib/class.plx.utils.php, il faut modifier la fonction printLinkCss() comme suit :
    Remplacer :

    $files = glob(preg_replace('#/core/lib$#', '/*/*/theme/plucss.css', __DIR__));
    

    par :

    if(DIRECTORY_SEPARATOR == '\\') {
        // Hack against Windows !!!!!
        $files = glob(preg_replace('#/core/lib$#', '/*/*/theme/plucss.css', str_replace('\\', '/', __DIR__)));
    } else {
        $files = glob(preg_replace('#/core/lib$#', '/*/*/theme/plucss.css', __DIR__));
    }
    

    Je mettrai l'archive zip à jour dès que possible.

  • kameakamea Member
    18 juil. modifié

    Merci, et au passage, le commentaire // Hack against Windows !!!!! , et bien LOL quoi ! :)

    J'ai testé sur https://kazimentou.alwaysdata.net/PluXml-admin/, ça fonctionne très bien.

    Encore une fois Chapeau Bas !

  • Idem cela fonctionne bien aussi pour moi.

    Juste un soucis avec le capcha :

    Deprecated: Creation of dynamic property plxCapcha::$num is deprecated in ..... core/lib/class.plx.capcha.php on line 99


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de PluXml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,

    Merci pour vos retours.
    Pour simplifier le code, j'ai modifié le dernier correctif comme ceci :

    # Notice : on Windows dirname('/index.php') returns '\', on Linux returns '/' !!!
    $path1 = preg_replace('#(?:/\w[\w-]+/\w[\w-]+)?/\w[\w-]+\.php$#', '', $_SERVER['SCRIPT_NAME']);
    

    J'abandonne l'utilisation de dirname() qui renvoie une valeur erronée sous Windows
    Voir notes à propos de dirname() sur php.net

    Il y a également une optimisation dans foot.php pour lancer l'objet mediasManager en JS

    PR #874

    Télécharger l'archive zip

    Je vais faire un Pull-request pour plxCapcha (pb de renommage de propriétés)

  • kameakamea Member

    Bonjour à tous :)

    J'ai essayé avec core/admin4587m! et ça à l'air de bien fonctionner, j'ai créé un nouvel article :)

    Il y a toujours ce soucis où je n'ai aucun style (voir screen ci dessous), mais ça fonctionne, bravo !

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour @kamea,

    Enlève le caractère final "! " du nom du dossier.

    Le chemin aux feuilles de style du back-office est donné par la fonction plxUtils::printLinkCss(). Dans cette fonction on calcule la variable $themeDir à partir d'une expression régulière.
    Pour cela, les caractères autorisés dans le nom d'un dossier sont : 0-9, a-z, _ (tiret du 8), -(tiret du 6). Sans tenir compte des maj.min.uscules.

  • kameakamea Member
    28 juil. modifié

    Lol, il fallait que je tombe sur le seul caractère qu'il ne fallait pas. Le style est bien pris en compte, merci.

    J'en ai profité pour tester pas mal de truc dans les articles, les pages statiques, les médias ... tout à l'air de bien fonctionner

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,

    J'ai intégré cette fonctionnalité dans la nouvelle version 5.8.20 de PluXml, avec quelques correctifs mineurs

    Cette fonctionnalité est également intégrée dans la version en cours de développement (5.9.xxx) branche master sur le dépôt github.
    Pour cette branche, il y a également d'autres nouveautés :

    • Possibilité de filtrer les pages statiques par groupe
    • Refacto de la gestion des commentaires.
  • kameakamea Member
    9 août modifié

    Bonjour @bazooka07

    Merci pour cette mise a jour 5.8.20 qui fonctionne très bien. J'ai testé plusieurs choses en modifiant le nom du répertoire admin. Les pages statiques, les articles, les commentaires... J'ai également des plugins qui fonctionnent également.

    Si je rencontre des soucis je te préviendrai.

    Chapeau bas !

Connectez-vous ou Inscrivez-vous pour répondre.