Zolo Posté(e) 29 août 2017 Share Posté(e) 29 août 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Administrateurs Aurelien P. Posté(e) 29 août 2017 Administrateurs Share Posté(e) 29 août 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Zolo Posté(e) 29 août 2017 Auteur Share Posté(e) 29 août 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 29 août 2017 Share Posté(e) 29 août 2017 (modifié) As-tu essayé: <?php print_r(apache_get_modules()); ?> Modifié 29 août 2017 par Alex Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Simon D. Posté(e) 29 août 2017 Share Posté(e) 29 août 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Zolo Posté(e) 29 août 2017 Auteur Share Posté(e) 29 août 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() Lien vers le commentaire Partager sur d’autres sites More sharing options...
Zolo Posté(e) 29 août 2017 Auteur Share Posté(e) 29 août 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Simon D. Posté(e) 29 août 2017 Share Posté(e) 29 août 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>. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Zolo Posté(e) 29 août 2017 Auteur Share Posté(e) 29 août 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant