Question

Je me demandais si la protection d'un répertoire Web avec un fichier .htaccess (avec le fichier .htpasswd en dehors du Webroot apache public) est un moyen sûr de protéger un répertoire (et son contenu).

Quelqu'un pourrait-il expliquer le faire et ne pas faire de ce genre de protection?

Était-ce utile?

La solution

L'authentification sera transmise sans protection sur le net si vous utilisez le protocole HTTP standard. Ce n'est pas considéré comme sûr, comme quelqu'un pourrait renifler le mot de passe.

Si vous restreignez accès à https, il est tout à fait sûr. Cela signifie pour installer et activer le module apache pour le trafic http ssl crypté (port 433, https: // dans la ligne d'adresse du navigateur) et désactiver le trafic HTTP standard pour ce répertoire sur le port 80. Nom d'utilisateur et mot de passe sera ssl crypté. Assurez-vous de choisir un bon mot de passe (longue et assez complexe, impossible de deviner ou force brute).

configuration Apache peut être difficile, donc prendre beaucoup de soin de garder les choses simples et un test contre les erreurs possibles.

Il peut être une bonne idée de déplacer la configuration de restriction d'accès du fichier .htaccess du principal fichier de configuration apache si vous avez la connaissance et le contrôle. Pourrait aussi être plus facile pour vous de le garder dans le fichier .htaccess. Et « facile » peut être plus sûr. Faites-la façon dont il se sent simple et sûre et facile à entretenir et n'oubliez pas pour vous.

Ceci est une configuration simple pour améliorer la sécurité et la protection contre les accidents:

Si vous avez php et email configurés sur la machine où le répertoire protégé est que vous pouvez écrire un script d'alarme simple. Juste un fichier php « alarm.php » avec une seule ligne avec la fonction php mail que vous envoie un e-mail, vous indiquant que la protection htaccess ne fonctionne pas.

Si votre chemin de domaine et le répertoire est « http://mybox.example.com/secretdir /alarm.php » vous pouvez entrer cela dans un navigateur sur une autre machine et vous devriez obtenir que le courrier aussi longtemps que htaccess est « ouvert ». Si elle est protégée, vous pouvez saisir le nom d'utilisateur et mot de passe et vous pourrez également obtenir le courrier.

Pour faire une alarme automatisée de cela, vous pouvez utiliser une boîte unix différente qui tente d'obtenir cette URL toutes les 15 minutes. La ligne pour la crontab:

* / 15 * * * * user1 wget http://mybox.example.com/ secretdir / alarm.php

user1 est un utilisateur sur cette machine qui est autorisé à exécuter wget et wget doit être installé.

Vous pouvez désactiver la protection htaccess comme un test et devrait obtenir le courrier toutes les 15 minutes.

De mon expérience, il est une faille de sécurité commune qu'un répertoire que vous pensez est protégé desserre sa protection quand vous changez quelque chose et vous ne savez pas, de cette façon vous obtenez l'e-mail qui vous avertit.

Autres conseils

Pour autant que je sache, htaccess est facile à pirater si elle est intercepté (F.E. Vous connecter à partir d'un cybercafé avec un sniffer réseau en cours d'exécution). Pour autant que je sais , authentification Digest aide à obtenir plus de ce problème.

.htaccess est assez moyen standard comment modifier la configuration par répertoire des ressources desservies par Apache dans les cas où vous n'ont pas accès pour principal fichier de configuration / ne pas avoir accès à la racine.

Si vous avez accès à la configuration principale, il est beaucoup plus facile d'avoir toutes les configurations (y compris l'authentification) placée dans un emplacement central (même si elle est divisée en plusieurs fichiers), où il est pas si facile de le négliger. D'après mon expérience, je peux dire, il est juste une question de temps avant que vous oubliez vos fichiers .htaccess.

Documentation officielle est de mentionner à plusieurs reprises que l'utilisation de fichiers doit être htaccess évité lorsque cela est possible.

Si l'utilisation de <=> est votre seul choix, assurez-vous de suivre les consignes de sécurité générales avec configuration principale HTTPD, à savoir empêcher les utilisateurs non autorisés de les lire, les fichiers sont lisibles par serveur, assurez-vous que vous avez liste des répertoires désactivé, toujours faire un mot de passe que sont stockés dans un format crypté / haché, etc.

Pour plus d'informations, s'il vous plaît, consultez le tutoriel Apache

Un fichier .htaccess est très pratique, mais ... ce ne sera pas vous protéger de quelqu'un exploiter votre code et la lecture de tout fichier qu'il veut. Si votre site (même un petit script) sera exploité, ni .htaccess, ni d'autres solutions protégera Vous, en tant que le pirate gagnera les droits de l'utilisateur exécutant le script (généralement www-data).

Ceci est particulièrement painfull dans CGI, mais d'autres scripts sont piraté ainsi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top