web-dev-qa-db-fra.com

Mot de passe protéger mon site Web

J'ai récemment créé une nouvelle instance Amazon EC2 en utilisant Amazon Linux AMI. Quel est le meilleur moyen de forcer un utilisateur accédant au domaine à entrer un nom d'utilisateur/mot de passe avant de permettre l'accès au site?

J'utilise actuellement le serveur HTTP Apache, et certaines ressources indiquent que je dois utiliser un fichier .htaccess, mais je cherchais une explication plus concise.

14
andersra

Si tout ce que vous recherchez, c’est un contrôle d’accès au niveau du serveur (c’est-à-dire, aucune modification de votre application), vous pouvez utiliser l’authentification de base. Ceci est implémenté au niveau du serveur Web Apache et peut être contrôlé répertoire par répertoire si vous le souhaitez à l'aide de fichiers .htaccess.

Voici un lien vers la documentation Apache

http://httpd.Apache.org/docs/2.2/howto/auth.html

Voici un exemple simple de mise en œuvre

http://doc.norang.ca/Apache-basic-auth.html

4
Mike Brant

Mot de passe de protection du site via Htaccess

  1. Créez un fichier .htaccess avec les éléments suivants dans le dossier à protéger:

    AuthType Basic
    AuthName "Password Protected Area"
    AuthUserFile /var/www/admin/.htpasswd
    Require valid-user
    
  2. Créez un fichier .htpasswd dans le même dossier ou, de préférence, dans un dossier situé en dehors de /var/www.

    Pour démonstration, j'ai utilisé un chemin factice ci-dessus. Le fichier .htpasswd doit contenir votre mot de passe salt use this generator pour créer votre fichier .htpasswd.

  3. En supposant que vous utilisez Ubuntu, vous devez activer le remplacement htaccess via ce fichier: /etc/Apache2/sites-available/default

    Remplacez "AllowOverride None" par "AllowOverride All" dans:

    <Directory /var/www/>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride None
       Order allow,deny
       allow from all
    </Directory>
    

remarque: vous devrez peut-être modifier ssh via la ligne de commande: Sudo nano /etc/Apache2/sites-available/default

  1. Sudo /etc/init.d/Apache2 reload
28
George

Vous devez générer un mot de passe nom d'utilisateur + chaîne de mot de passe pour l'authentification et l'écrire dans un fichier.

  • Vous pouvez utiliser Outil de génération de mot de passe HTTP pour le faire.
  • Copier coller la chaîne que vous avez obtenue dans un nouveau fichier (.htpasswd) n'importe où en dehors de votre racine Web (il est préférable de le conserver n'importe où dans le répertoire de base de l'utilisateur).
  • Ajoutez les lignes suivantes dans votre fichier .htaccess.
AuthType Basic
AuthName "Require Authentication"
AuthUserFile [PATH_TO_FILE]/.htpasswd
Require valid-user
  • Si le mot de passe ne se déclenche pas, vérifiez l'autorisation du fichier .htaccess.

  • Si l'authentification échoue, vérifiez l'existence du fichier .htpasswd à l'emplacement spécifié. (Assurez-vous que votre compte utilisateur dispose de suffisamment de privilèges sur le fichier .htpasswd pour être lus)

  • Pour ce faire, vous n'avez pas besoin de redémarrer le serveur.

J'espère que cela t'aides.

1
Deepak R

générer un mot de passe crypté et l'ajouter au fichier .htpasswd

$ htpasswd -nbm username Password

Entrée du fichier .htaccess

AuthType Basic
AuthName "My Protected Area"
AuthUserFile /absolute/path/to/password/file
Require valid-user

Pour plus de détails, consultez cet article de blog - iCodefy

0
suriish