1
votes

.htaccess protège le backend TYPO3 lié symboliquement

J'essaie de protéger un ancien backend TYPO3 8.7 (/ typo3) via une partie de base AuthType dans le fichier .htaccess TYPO3 normal. Je me retrouve toujours avec des erreurs de serveur internes. Quelqu'un a-t-il déjà fait ça? Est-il possible que cela ne puisse pas fonctionner avec les liens symboliques?

Je mets cette partie de code au-dessus de mon .htaccess (avant que tous les trucs rwrite ne commencent):

    SetEnvIf Request_URI ^.*/typo3.* require_auth=true
    AuthType basic
    AuthName "Admin Schutz"
    AuthUserFile /usr/etc/.htpasswd
    #Order Deny,Allow
    #Deny from all
    #Satisfy any
    Require valid-user
    Allow from env=!require_auth

Merci pour tous les indices!


1 commentaires

Vous devriez vérifier les journaux de votre serveur et ajouter les messages ici pour votre erreur de serveur interne.


4 Réponses :


1
votes

Devrait travailler avec:

AuthType        basic
AuthName        "Secret area!"
AuthUserFile    /usr/etc/.htpasswd
require         valid-user
Order           deny,allow
Deny            from all
Satisfy         ANY

Une erreur de serveur interne est générée, par exemple si votre chemin vers AuthUserFile n'est pas correct.

Ici, j'ai écrit mon extrait pour ma documentation publique personnelle: https://www.entwicklertools.de/snippet-sammlung/htaccess-snippets/passwortschutz-einrichten/


2 commentaires

"Order deny, allow" et "Deny from all" ne fonctionneront pas dans Apache> = 2.4, sauf si vous avez activé le access_compat_module. Dans tous les cas, si vous savez que vous utilisez la version 2.4 ou supérieure, n'utilisez pas les directives obsolètes.


Voir la citation de la documentation officielle du serveur HTTP Apache: "Les directives Allow, Deny et Order, fournies par mod_access_compat, sont obsolètes et disparaîtront dans une version future. Vous devez éviter de les utiliser et éviter les didacticiels obsolètes recommandant leur utilisation." httpd.apache.org/docs/2.4/howto/access.html



1
votes

En supposant que votre fichier /usr/etc/.htpasswd est accessible et valide (créé correctement avec la commande htpasswd et chmodé en 644 ), votre exemple devrait fonctionner pour Apache 2.2 , mais pas pour Apache 2.4 selon les commentaires de cet article . Littéralement dans 2.4 cela fonctionnera, mais nécessitera également un mot de passe pour votre domaine racine.

Il existe deux solutions. Tout d'abord, placez des fichiers .htaccess supplémentaires dans votre répertoire typo3 avec une règle simple, c'est-à-dire comme indiqué par @Naderio :

<VirtualHost *:80>

    ServerAdmin your@email.tld
    DocumentRoot "/www/typo3/project-x.loc"
    ServerName project-x.loc

    # below your valid paths for log files...
    # ErrorLog "logs/project-x.loc-error_log"
    # CustomLog "logs/project-x.loc-access_log" common
    
    <Directory "/www/typo3/project-x.loc">
        Options Indexes FollowSymLinks ExecCGI Includes
        AllowOverride All
        Require all granted
    </Directory>
    
    <Directory "/www/typo3/project-x.loc/typo3">
        AuthType        basic
        AuthName        "Restricted in VHOST config!"
        AuthUserFile    /usr/etc/.htpasswd
        require         valid-user
        Order           deny,allow
        Deny            from all
        Satisfy         ANY
    </Directory>
    
</VirtualHost>

Cependant, si vous avez créé un typo3 symbolique typo3 vers les sources comme suggéré dans la documentation de TYPO3 et / ou que vous ne voulez pas exiger BasicAuth pour tous les projets qui utilisent les mêmes sources, vous pouvez remplacer ces paramètres directement dans la configuration VHOST comme (en supposant que vous avez tous vos projets TYPO3 c'est à dire dans le dossier /www/typo3/ :

AuthType        basic
AuthName        "Secret area!"
AuthUserFile    /usr/etc/.htpasswd
require         valid-user
Order           deny,allow
Deny            from all
Satisfy         ANY

Remarque: je vérifierais de toute façon si le chemin que vous essayez d'utiliser /usr/etc/ est accessible pour Apache, peut-être qu'il sera préférable de déplacer votre fichier .htpasswd quelque part plus près de votre structure www , comme dans le dossier /www/etc/ et fixer les règles ci-dessus en conséquence?


0 commentaires

1
votes

Merci à toutes les réponses.

enfin, nous l'avons également fait dans le vhost par le code suivant en utilisant le tag "location".

 <Location /typo3/>
            AuthType Basic
            AuthName "Enter Password"
            AuthUserFile /www_data/.htpasswd4xyz
            Require valid-user
    </Location>


1 commentaires

Dans ce monde, il y a toujours des endroits pour des améliorations;) Merci pour le partage.



0
votes

Dans le cas où vous ne pouvez pas modifier la configuration de vhost, cette ligne doit fonctionner à la place de votre SetEnvIf dans votre .htaccess, en:

SetEnvIfNoCase Request_URI ^/typo3/$ require_auth=true


0 commentaires