Zolo Posted August 29, 2017 Posted August 29, 2017 Bonjour à tous, Je suis en hébergement mutualisé. Je cherche à restreindre l'accès à un site web ou à des sous-répertoires d'un site (sa partie administration typiquement, comme wp-admin pour un site wordpress). Dans ce but je souhaite mettre en place une sécurité via des fichiers .htaccess et .htpasswd. J'ai appliqué ce tuto : https://www.system-linux.eu/index.php?post/2009/04/23/Mettre-en-place-un-htaccess-avec-htpasswd. J'ai créé mes deux fichiers en local. Puis je les ai transférés par FTP : le fichier .htaccess dans le répertoire /var/www/mondomaine.fr/htdocs pour restreindre l'accès au site entier (ou dans un sous-répertoire pour restreindre l'accès uniquement à celui-ci) le fichier .htpasswd dans le répertoire /var/www/mondomaine.fr (afin que ce fichier ne soit pas accessible depuis le web). Le fichier .htaccess contient donc ceci : AuthUserFile /var/www/mondomaine.fr/.htpasswd AuthGroupFile /dev/null AuthName "Accès restreint" AuthType Basic <Limit GET POST> require valid-user </Limit> Sauf que le résultat est une jolie page erreur 500 Internal Server Error… Le tuto précise que le module Apache mod_authz_user doit être chargé. Est-ce le cas ? J'ai tenté de le savoir grâce à un script phpinfo() mais ça ne m'a rien appris. Je ne sais pas si ça veux dire que le module n'est pas chargé ou si l'info est indispo pour des raisons de sécurité. Est-ce qu'un tel système de sécurisation htpasswd est possible sur cet hébergement ? Si oui, y a-t-il quelque chose à faire que je loupe dans ma config ? Et si non, quelqu'un connaît-il un moyen alternatif mais aussi sécurisé ? Merci par avance à ceux qui pourront m'aider.
Administrators Aurelien P. Posted August 29, 2017 Administrators Posted August 29, 2017 Bonjour, Apache mod_authz_user est un module Apache, pas PHP il est donc normal que un phpinfo() ne donne pas cette information. Ce qui pose souci dans votre cas c'est le chemin : AuthUserFile /var/www/mondomaine.fr/.htpasswd Il faut regarder sur votre hébergement dans iWal, mais le chemin de votre hébergement est du genre : /datas/vol3/yulpa123456/var/www/site/point_de_montage
Zolo Posted August 29, 2017 Author Posted August 29, 2017 Merci pour votre réponse. Concernant mon souci, j'avais regardé dans iWal le chemin dans la navigation FTP où ça ne remonte que jusqu'à /var. En allant dans Publication Web > Domaines Web > mondomaine, j'ai effectivement trouvé le chemin complet. En modifiant mon .htaccess avec cette info tout marche impec . Pour phpinfo(), sur mon propre ordi cette fonction me donne aussi les modules apache actifs. Comment faut-il procéder sur l'hébergement Yulpa si besoin ?
Guest Posted August 29, 2017 Posted August 29, 2017 (edited) As-tu essayé: <?php print_r(apache_get_modules()); ?> Edited August 29, 2017 by Alex
Guest Simon D. Posted August 29, 2017 Posted August 29, 2017 Il y a 2 heures, Zolo a dit : <Limit GET POST> require valid-user </Limit> Ne JAMAIS mettre un code pareil dans son .htaccess, c'est une grosse faille de sécurité Cela se traduit par : si la méthode est GET ou POST, on vérifie l'utilisateur. Sinon (PUT, DELETE), on ne vérifie pas ! Avec ça, il y a donc moyen de quand même accéder aux fichiers censés être protégés. il y a 6 minutes, Alex a dit : As tu essayé: <?php print_r(apache_get_modules()); ?> Cela ne fonctionnera pas apache_get_modules() n'est disponible en PHP DSO (module Apache). Je n'ai pas connaissance d'un moyen de récupérer la liste des modules Apache via PHP FastCGI.
Zolo Posted August 29, 2017 Author Posted August 29, 2017 il y a 11 minutes, Alex a dit : As-tu essayé: <?php print_r(apache_get_modules()); ?> Oui et autant ça marche en local chez moi, sur l'hébergement Yulpa par contre ça me fait une Fatal error: Uncaught Error: Call to undefined function apache_get_modules()
Zolo Posted August 29, 2017 Author Posted August 29, 2017 il y a 14 minutes, Simon DUJANCOURT a dit : Ne JAMAIS mettre un code pareil dans son .htaccess, c'est une grosse faille de sécurité Cela se traduit par : si la méthode est GET ou POST, on vérifie l'utilisateur. Sinon (PUT, DELETE), on ne vérifie pas ! Avec ça, il y a donc moyen de quand même accéder aux fichiers censés être protégés. Oups Est-ce que je comprends bien ? En ne mettant pas <Limit GET POST> require valid-user </Limit> mais juste require valid-user ça devrait s'appliquer dans tous les cas ? il y a 14 minutes, Simon DUJANCOURT a dit : Cela ne fonctionnera pas apache_get_modules() n'est disponible en PHP DSO (module Apache). Je n'ai pas connaissance d'un moyen de récupérer la liste des modules Apache via PHP FastCGI. Je comprends mieux. Merci
Guest Simon D. Posted August 29, 2017 Posted August 29, 2017 il y a 3 minutes, Zolo a dit : Est-ce que je comprends bien ? En ne mettant pas <Limit GET POST> require valid-user </Limit> mais juste require valid-user ça devrait s'appliquer dans tous les cas ? Exact <Limit> sert à limiter des options à certaines méthodes HTTP, d'où l'avertissement dans la documentation d'Apache : Citation Dans le cas général, les directives de contrôle d'accès n'ont pas à être placées dans une section <Limit>.
Zolo Posted August 29, 2017 Author Posted August 29, 2017 Il y a 1 heure, Simon DUJANCOURT a dit : Exact <Limit> sert à limiter des options à certaines méthodes HTTP, d'où l'avertissement dans la documentation d'Apache : Citation Dans le cas général, les directives de contrôle d'accès n'ont pas à être placées dans une section <Limit>. Merci Bonne soirée
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now